1

我已经在我的应用程序中实现了 django-pagination 来处理分页,这一切都很好。我不知道的一件事是如何允许用户为每页的记录选择某个值,例如 15、30、45、60、100 或所有记录。

这样做的正确方法是什么?

4

1 回答 1

3

当你构造一个 Paginator 时,你传入每页的记录数。你需要从用户那里获取这个值,存储它,然后传入。

例如,它可能是一个用户设置——如果是这样,请将其添加到您的用户设置模型中,将其收集到一个表单中,存储它,然后在创建分页器之前从数据库中获取模型并将其传递。

或者它可能只是从页面上的元素设置的会话变量——再次,将元素放在页面上,使用它来设置会话变量,并将其传递给 Paginator 对象。

看起来它已包含在这个问题中:

Django中的灵活分页

编辑:阅读评论。

如果您阅读源代码,

http://code.google.com/p/django-pagination/source/browse/trunk/pagination/templatetags/pagination_tags.py

标签 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 或任何您想要的内容中设置。

于 2009-12-11T15:45:00.600 回答