Django处理动态订单的分页

时间:2016-11-18 04:02:18

标签: django pagination

我已经完成查询内容并提供next_url,previous_url等。问题是查询是基于动态排序(就像Facebook新闻源一样)。

如何处理以下情况?

用户请求第1页,参见文章10242.用户尚未请求第2页。由于排序算法,文章10242可能会移到第2页。如果是这样,当用户请求第2页时,用户将看到重复的帖子。

我不能简单地删除应用上的重复帖子。复制问题可以,但是当用户请求第1页,第10333条在第2页时,但是当用户请求第2页时,第10333条移到第1页。是否有任何建议的分页机制来支持动态排序?

1 个答案:

答案 0 :(得分:0)

很少有建议:

  1. 更改算法以保存dirty参数。无论何时有人喜欢它或进行更改,它都会变成dirty并且可以更改排序算法以将其考虑在内。我使用了几个搜索数据库(elasticsearch和algolia),它允许我根据各种参数自定义排序顺序。随着这一变化,您需要一个用户状态,查看已查看的内容和可以查看的内容,并将其用作过滤器 Here是一篇很好的论文,facebook讨论了它的一些方法。

  2. 更简单的方法是保存用户查看内容的信息,以及用户何时尝试获取信息过滤/降级文章。保持每个用户状态将处理一个人可能被一个人查看但不能被另一个人查看的问题 我个人喜欢nosql数据库或像redis / memcached这样的状态信息