我怎样才能避免重复具有无限分页和order_by('?')查询集的对象

时间:2015-04-18 18:35:47

标签: django pagination django-views django-endless-pagination

我正在使用django-endless-pagination与其推特风格的分页。现在我想在混乱的查询集上分页。我试图添加

return Fact.objects.all().order_by('?')

但是物体可以出现超过1次 我该如何改变这种行为?

2 个答案:

答案 0 :(得分:0)

您可以尝试的另一种方法是我使用的,我在另一个StackOverflow帖子here上找到的方法。

import random
items = sorted(Fact.objects.all().order_by('nr'), key=lamda x: random.random())
return items

答案 1 :(得分:0)

我认为在这种情况下使用分页会产生误导。当用户点击第2页时,它实际上不是第二页,它只是另外20个项目。
一个更好的选择是每次用户点击它时,只需一个按钮(例如,称为Fetch)并获取20个项目(或任何页面大小)。

为避免同一项目出现两次,您可以在会话中保留已查看的ID列表,并将其从后续查询中排除。