我正在使用Django 1.7.7.
我想知道是否有人经历过这个.这是我的查询:
events = Event.objects.filter(
Q(date__gt=my_date) | Q(date__isnull=True)
).filter(type__in=[...]).order_by('date')
Run Code Online (Sandbox Code Playgroud)
当我尝试然后分页
p = Paginator(events, 10)
p.count # Gives 91
event_ids = []
for i in xrange(1, p.count / 10 + 2):
event_ids += [i.id for i in p.page(i)]
print len(event_ids) # Still 91
print len(set(event_ids)) # 75
Run Code Online (Sandbox Code Playgroud)
我注意到,如果我删除了.order_by,我没有任何重复.然后我尝试.order_by了Event.objects.all().order_by('date'),没有重复.
最后,我尝试了这个:
events = Event.objects.filter(
Q(date__gt=my_date) | Q(date__isnull=True)
).order_by('date')
p = Paginator(events, 10)
events.count() # Gives 131
p.count # Gives 131
event_ids = []
for i in …Run Code Online (Sandbox Code Playgroud) 我在Django中有这个奇怪的分页错误:使用object_list作为视图的返回,但是向它传递一个"paginate_by"参数,它重复了一些结果; 否则,如果我删除参数或设置为"paginate_by = None",则结果是正确的.
如果使用分页,结果数量将保持总计,因此,由于重复结果,最后的结果将不在列表中,因此它们不会出现在模板中.
关于可能发生什么的任何想法?
谢谢!