我写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__in=set(list)).order_by('-releaseday')
不会重复
但Movie.objects.filter(id__in=set(list)).order_by('hotrank')
有重复!为什么会发生这种情况?
答案 0 :(得分:2)
如果多部电影具有相同的hotrank
,那么ORDER BY hotrank
中的实际订单将无法保证。尝试向order_by()
子句添加其他字段:
Movie.objects.filter(id__in=set(list)).order_by('hotrank', '-id')