django-pagination用户选择每页的记录

时间:2009-12-11 15:39:58

标签: django-pagination

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

正确的方法是什么?

1 个答案:

答案 0 :(得分:2)

构建Paginator时,会传递每页的记录数。您需要从用户获取此值,将其存储并传入。

例如,它可以是用户设置 - 如果是这样,将其添加到您的用户设置Model,在表单中收集它,存储它,然后在创建Paginator之前从db获取Model并将其传入。

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

看起来这个问题已经涉及:

Flexible pagination in 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 %} - 然后您可以从查询字符串,db或任何您想要的设置page_by