【问题标题】:Expand pagination beyond previous, current, and next page (Django)将分页扩展到上一页、当前页和下一页之外 (Django)
【发布时间】:2013-06-17 22:29:35
【问题描述】:

我在我的 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>

如果您在第二页,这会导致类似于 [ 2, 3, >>] 的内容。我想将覆盖范围扩大一到两步左右。所以如果我在第 3 页,我可以从 1 到 5 一路到达。

【问题讨论】:

    标签: django pagination


    【解决方案1】:
    {# 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 类突出显示该页面,并让它知道它应该从变量中计数。

    【讨论】:

    • 非常感谢您的帮助!这正是我想要的。
    猜你喜欢
    • 2010-10-19
    • 2020-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    相关资源
    最近更新 更多