Python 为什么Django认为这两个相同的查询集不同?
我有两个Django模特-DJ和歌曲。我正在尝试为某个DJ获取所有同名歌曲集 我就是这样做的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
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
实例通过对象标识“地址”进行比较