Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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 order_by有重复项_Python_Django - Fatal编程技术网

Python 为什么django order_by有重复项

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

我编写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.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')