Python 为什么django order_by有重复项
我编写django restframework 我使用set来确保数字只出现一次Python 为什么django order_by有重复项,python,django,Python,Django,我编写django restframework 我使用set来确保数字只出现一次 def hot_movie(self, request, *args, **kwargs): print set(list) #set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 40, 41, 42, 59, 61, 64, 65, 68, 70, 71, 73, 76, 77]) self.queryset = Movie.o
def hot_movie(self, request, *args, **kwargs):
print set(list) #set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 40, 41, 42, 59, 61, 64, 65, 68, 70, 71, 73, 76, 77])
self.queryset = Movie.objects.filter(id__in=set(list)).order_by('hotrank','-releaseday')
return super(MovieList, self).get(request, *args, **kwargs)
但在django order_by()之后,有一个重复项,是因为paginator吗???
它在一页中显示10个结果。
在第2页中,id=77再次出现
请帮帮我!!我被困了好几天 我尝试
Movie.objects.filter(id\u in=set(list))。order\u by('-releaseday')
不会重复
但是
Movie.objects.filter(id\uu in=set(list)).order\u by('hotrank')
有重复项!为什么会发生这种情况呢?如果几部电影都有相同的hotrank
,那么hotrank的真实顺序就无法保证了。尝试将其他字段添加到order\u by()
子句:
Movie.objects.filter(id__in=set(list)).order_by('hotrank', '-id')
是的,我有相同的hotrank。因此我可以使用
.order\u by('hotrank','-id','-releaseday')
?最好在排序字段的末尾添加-id
。order\u by('hotrank','-releaseday','-id')