【问题标题】:Django: How do I pass a for variable into a querystring?Django:如何将 for 变量传递给查询字符串?
【发布时间】:2019-02-15 23:11:08
【问题描述】:

我正在尝试修复 Django 应用程序中的一些分页问题。使用上一个和下一个按钮可以正常工作,因为我正在使用诸如 previous_page_number 之类的现有变量,但我不确定如何让第 1 页、第 2 页、第 N 页按钮工作。这是上一页的代码,可以正常工作:

{% if table.page and table.paginator.num_pages > 1 %}
    {% block pagination %}
    <nav class="pagination is-centered" role="navigation" aria-label="pagination">
        {% block pagination.previous %}
        {% if table.page.has_previous %}
            <a href="{% querystring table.prefixed_page_field=table.page.previous_page_number %}" class="pagination-previous">Previous</a>
        {% else %}
            <a href="#" class="pagination-previous" disabled>Previous</a>
        {% endif %}
        {% endblock pagination.previous %}

这是我当前的分页范围代码,但没有。具体来说,其他部分是我无法工作的部分。

{% block pagination.range %}
{% if table.page.has_previous or table.page.has_next %}
    <ul class="pagination-list">
    {% for p in table.page|table_page_range:table.paginator %}
        {% if table.page.number == p %}
        <li>
            <a class="pagination-link is-current is-dark" aria-label="Page {{ table.page.number }}" aria-current="page">{{ table.page.number }}</a>
        </li>
        {% else %}
        <li>
            <a href="{% querystring table.prefixed_page_field=table.page.p %}" class="pagination-link" aria-label="Page {{ p }}">{{ p }}</a>
       </li>
       {% endif %}
   {% endfor %}
   </ul>
{% endif %}
{% endblock pagination.range %}

目前,分页不起作用,并且传递的 URL 以 page= 而不是 page=p 结束,无论当时 p 是什么。我不确定如何将 p 作为可读变量传递,以使其出现在 URL 中。我尝试使用与不在查询字符串中的代码的其他部分相同的格式。

{% else %}
<li>
    <a href="{% querystring table.prefixed_page_field=table.page.{{ p }} %} class="pagination-link" aria-label="Page {{ p }}">{{ p }}</a>
   </li>
{% endif %}

这会导致根本阻止页面加载的错误,因为 Django 无法协调 {{ 部分。

【问题讨论】:

  • 嗨 Jay,这可能与 stackoverflow.com/questions/13387885/… 重复
  • 你是对的。我可以验证评论是否为最佳答案吗?如果可以,我应该怎么做?
  • 我不认为这是可能的,您只需单击评论旁边的向上箭头即可将评论标记为有用。问候!

标签: html django pagination


【解决方案1】:
<a href="yourlink.domain/?page=1">Display</a> 

你可以像这样从views.py中获取;

page = request.GET.get("page", ""), 

如果页面没有,你可以像这样给他们默认值

page = request.GET.get("page", "1")

【讨论】:

    猜你喜欢
    • 2017-11-15
    • 2012-06-25
    • 2017-11-25
    • 2020-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    相关资源
    最近更新 更多