Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么Django认为这两个相同的查询集不同?_Python_Django - Fatal编程技术网

Python 为什么Django认为这两个相同的查询集不同?

Python 为什么Django认为这两个相同的查询集不同?,python,django,Python,Django,我有两个Django模特-DJ和歌曲。我正在尝试为某个DJ获取所有同名歌曲集 我就是这样做的 for dj in DJ.objects.all(): song_group_list = [] dj_song_list = Song.objects.filter(artist=dj) for song in dj_song_list: song_group = dj_song_list.filter(name=song.name).order_by('son

我有两个Django模特-DJ和歌曲。我正在尝试为某个DJ获取所有同名歌曲集

我就是这样做的

for dj in DJ.objects.all():
    song_group_list = []
    dj_song_list = Song.objects.filter(artist=dj)
    for song in dj_song_list:
        song_group = dj_song_list.filter(name=song.name).order_by('song_id')
        if len(song_group) > 1:
            if song_group not in song_group_list:
                song_group_list.append(song_group)
    for group in song_group_list:
        print group
这将输出具有相同查询集结果的2个重复集

[<Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>]
[<Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>, <Song: Wake Up>] 
为什么not in无法区分这两个Queryset?

查看Queryset的我找不到任何uuu eq_uuu方法,因此,在比较Queryset的两个不同实例时,找不到任何匹配项

>>> class A(object):
    pass

>>> A() == A()
False
>>> A() in [A()]
False
发件人:

如果未定义uuu cmp_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 实例通过对象标识“地址”进行比较