扩展超出上一页,当前页和下一页的分页(Django)

时间:2013-06-20 21:38:29

标签: django pagination

我在我的Django项目中使用Pagination并且一切正常,但我不知道如何扩展我的范围超出我所在的那一页的+/-一页。目前,我的html看起来像这样:

    <div class="pagination pagination-centered">
 <ul>
{% if title.has_previous %}
   <li><a href="?q={{ query }}&page={{ title.previous_page_number }}">«</a></li>
   <li><a href="?q={{ query }}&page={{ title.previous_page_number }}">{{ title.previous_page_number }}</a></li>
{% endif %}
   <li class="active"><a href="?q={{ query }}&page={{ title.number }}">{{ title.number }}</a></li>
{% if title.has_next %}
  <li><a href="?q={{ query }}&page={{ title.next_page_number }}">{{ title.next_page_number }}</a></li>
  <li><a href="?q={{ query }}&page={{ title.next_page_number }}">»</a></li>
{% endif %}
 </ul>
</div>

如果你在第二页,这会产生类似[&lt;&lt;&lt;&lt;, 2 ,3,&gt;&gt;]的内容。我希望通过一两步左右扩大范围。因此,如果我在第3页,我可以从1-5开始一直到达。

1 个答案:

答案 0 :(得分:5)

{# Create A Button Group that contains possible pages to navigate to #}

{% for page in paginator.page_range %}
    {% if page < toolbar_max and page > toolbar_min and page != results.number %}
        <button formaction="{% url 'volume:page' page=page %}">{{ page }}</button>
    {% elif page == results.number %}
        <button type="submit" formaction="{% url 'volumes:page' page=page %}">{{ page }}</button>
    {% endif %}
{% endfor %}

基本上,您保留所需的最小和最大数量页面(toolbar_min和toolbar_max并将其传递到您的页面。

# Variables to be passed for page menu
toolbar_max = results.number + 4
toolbar_min = results.number -4

因此它会在您当前所在号码的每一侧显示4。 '结果'是我的查询,显示我当前的页面。我希望用不同的css类突出显示该页面,并且知道它应该从变量开始计算。