我正在尝试解决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 %}
这是我当前的分页范围代码,不是。具体来说,else段就是我无法工作的部分。
{% 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无法协调{{部分。
答案 0 :(得分:0)
<a href="yourlink.domain/?page=1">Display</a>
您可以像这样从views.py中获取
page = request.GET.get("page", ""),
如果页面不存在,则可以为他们提供默认值
page = request.GET.get("page", "1")