【问题标题】:django-pagination user selected records per pagedjango-pagination 用户每页选择的记录
【发布时间】:2009-12-13 23:21:07
【问题描述】:

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

解决这个问题的正确方法是什么?

【问题讨论】:

    标签: django-pagination


    【解决方案1】:

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

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

    或者它可能只是从页面上的元素设置的会话变量 -- 再次,将元素放在页面上,使用它来设置会话变量,并将其传递给 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

    【讨论】:

    • 我已经看过那个问题了......如果我错了,请纠正我,但这种方法适用于标准的 Django 分页器。我正在使用 django-pagination (code.google.com/p/django-pagination) 应用程序
    猜你喜欢
    • 2012-03-14
    • 2012-09-24
    • 1970-01-01
    • 1970-01-01
    • 2016-12-14
    • 2012-08-25
    • 2020-06-14
    • 2012-06-04
    • 1970-01-01
    相关资源
    最近更新 更多