我已经在我的应用程序中实现了 django-pagination 来处理分页,这一切都很好。我不知道的一件事是如何允许用户为每页的记录选择某个值,例如 15、30、45、60、100 或所有记录。
这样做的正确方法是什么?
我已经在我的应用程序中实现了 django-pagination 来处理分页,这一切都很好。我不知道的一件事是如何允许用户为每页的记录选择某个值,例如 15、30、45、60、100 或所有记录。
这样做的正确方法是什么?
当你构造一个 Paginator 时,你传入每页的记录数。你需要从用户那里获取这个值,存储它,然后传入。
例如,它可能是一个用户设置——如果是这样,请将其添加到您的用户设置模型中,将其收集到一个表单中,存储它,然后在创建分页器之前从数据库中获取模型并将其传递。
或者它可能只是从页面上的元素设置的会话变量——再次,将元素放在页面上,使用它来设置会话变量,并将其传递给 Paginator 对象。
看起来它已包含在这个问题中:
编辑:阅读评论。
如果您阅读源代码,
标签 autopaginate 采用数字或模板变量。
if isinstance(paginate_by, int):
self.paginate_by = paginate_by
else:
self.paginate_by = template.Variable(paginate_by)
因此,请尝试在您的视图中传入一个模板变量'page_by':10
并使用{% autopaginate list page_by %}
-- 然后您可以page_by
从查询字符串、db 或任何您想要的内容中设置。