关于更改的Queryset的Django分页

时间:2010-07-29 22:09:56

标签: python django pagination

在我的一个页面上,我想显示一个已排序的对象列表的子集。整个相关对象列表非常长,并且在用户查看页面时很有可能发生变化。我不介意页面不是最新的,但我确实需要确保当用户转到下一页时,用户将看到原始排序列表中的下n个对象。因此,由于可能会更改数据,使用django的内置分页或非常好的库(如Django-endless-pagination)在转到“下一页”时将无法返回正确的结果。

举一个我的意思的例子,说我们有对象[1,2,3,4,5,6,7,8,9,10,11,12],并希望每页显示5个,排序从小到大。第一页看起来像:

1,2,3,4,5。

但在查看此页面时,删除了3和4。如果我们转到“下一页”页面,分页将重新查询该集并返回:

8,9,10,11,12

我意识到这是分页的预期行为,但我想要一个简单的方法来显示下一页:

6,7,8,9,10

最明显的解决方案是做一些客户端分页,我意识到这有一个nice jquery library,但对象的数量可能太大,这个解决方案是不现实的。

在查询集上是否有一种简单的分页方法,并继续使用从原始查询集返回的结果,而不是重新获取可能已更改的查询集?

感谢您给我的任何见解!

1 个答案:

答案 0 :(得分:3)

可能的解决方案是,如果你创建自己的分页功能,而不是引用某个页面的下一个链接,它可以传递一个记录,这是下一页的最高记录

问题是这只有在添加/更改的项目只是列表中的第一项时才有效