0

我正在使用 django-endless-pagination 及其 twitter 风格的分页。现在我想对洗牌的查询集进行分页。我试图添加

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

但随后对象可以出现超过 1 次。
我怎样才能改变这种行为?

4

2 回答 2

0

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

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

于 2015-04-19T07:22:39.253 回答
0

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

import random
items = sorted(Fact.objects.all().order_by('nr'), key=lamda x: random.random())
return items
于 2015-04-18T23:23:59.850 回答