【问题标题】:Keeping items per page static while paginating分页时保持每页项目静态
【发布时间】:2019-08-16 03:47:04
【问题描述】:

我提出了一个问题并得到了关于如何在 Django 中进行分页的快速回复(感谢 Bob!):

Change value for paginate_by on the fly

但是,如下所述,我在让每页的项目保持设置时遇到问题。

我修改了我的 ProdListView.html 模板以显示带有页码的按钮,但是,当它工作时,我得到了一个奇怪的行为。我有一个 for 循环,用于将页码作为按钮输出:

{% for i in DataPaginated.paginator.page_range %}
  {% if DataPaginated.number == i %}
    <button class="w3-button w3-amber">{{ i }} </button>
  {% else %}
    <a href="?page={{ i }}" class="w3-button">{{ i }}</a>
  {% endif %}
{% endfor %}

如果分页设置为默认值 10,则可以正常工作并显示三页(有 24 个项目)。如果我将分页更改为 20,它一开始看起来是正确的并显示两页。但是,如果我点击第二页,它会将我的分页更改回 10,再次显示三页,并将我置于三页中的第二页。

为了节省空间,除了上面的片段之外,您可以在 views.py 文件和模板文件中找到我正在使用的代码,在 Bob White 的回答中:

Change value for paginate_by on the fly

我希望在表单中选择每页的任何项目保持设置,同时用户翻阅输出,直到/除非他们选择再次更改每页的项目。有什么办法可以让我的分页(每页的项目)锁定在表单选择的设置上吗?

谢谢--

阿尔

【问题讨论】:

    标签: django pagination


    【解决方案1】:

    查看视图中的代码,您有一行:paginate_by = request.GET.get('paginate_by', 10) or 10,但我在您的模板中没有看到您发送paginate_by 查询参数?

    如果您没有明确提供,这基本上会将您的分页重置为10

    【讨论】:

    • 嗯,呵呵。我花了太多时间查看 css 而忽略了参数。我已将所有链接更正为:'{{ i }}'。现在它起作用了。谢谢!。
    猜你喜欢
    • 2011-02-19
    • 1970-01-01
    • 2015-12-15
    • 2013-06-21
    • 1970-01-01
    • 2018-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多