Django分页如何减少显示链接的数量?

2024-05-19 09:46:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在Django站点中显示<< 1 2 3 4... 11 12 >>而不是<< 1 2 3 4 5 6 7 8 9 10 11 12>>,并使用分页

这是我目前得到的:

Current preview

我的html代码:

<div class="row">
    <div class="col-md-12">
      {% if jokes.has_other_pages %}
      <ul class="pagination">
         {% if jokes.has_previous %}
           <li class="page-item">
             <a href="?page={{jokes.previous_page_number}}" class="page-link">&laquo;</a>
           </li>
         {% else %}  
          <li class="page-item disabled">
            <a class="page-link">&laquo;</a>
          </li>
         {% endif %}
         {% for i in jokes.paginator.page_range %}
          {% if jokes.number == i %}
            <li class="page-item active">
             <a class="page-link">{{i}}</a>
            </li>
          {% else %}
           <li class="page-item">
             <a href="?page={{i}}" class="page-link">{{i}}</a>
           </li>
          {% endif %}
         {% endfor %}
         {% if jokes.has_next %}
         <li class="page-item">
           <a href="?page={{jokes.next_page_number}}" class="page-link">&raquo;</a>
         </li>
       {% else %}  
        <li class="page-item disabled">
          <a class="page-link">&raquo;</a>
        </li>
       {% endif %}
      </ul>
      {% endif %}
    </div>

提前谢谢


Tags: divnumberifpagelinkliitemul
2条回答

你可以这样使用它

        {% if jokes.has_previous %}
            <a href="?page=1">first</a>
            <a href="?page={{ jokes.previous_page_number }}">{{ jokes.previous_page_number }}</a>
        {% endif %}

        <span class="current">
             {{ jokes.number }} 
        </span>

        {% if jokes.has_next %}
            <a href="?page={{ jokes.next_page_number }}">{{ jokes.next_page_number }}</a>
            <a href="?page={{ jokes.paginator.num_pages }}">last </a>
        {% endif %}

其结果如下:

first 4 5 6 last

4是上一页
5是当前页面
6是下一页

下面是一个烧瓶示例,它应该为您提供一个良好的起点:

<div style="margin:25px 20% 100px 20%;">
{% for page_num in posts.iter_pages(left_edge=1, right_edge=1, left_current=1, right_current=2) %}
  {% if page_num %}
    {% if posts.page == page_num %}
      <a class="btn btn-info mb-4" href=" {{ url_for('myposts', page=page_num) }}">{{ page_num }}</a>   
    {% else %}
      <a class="btn btn-outline-info mb-4" href=" {{ url_for('myposts', page=page_num) }}">{{ page_num }}</a>
    {% endif %}
   {% else %}
        ...
   {% endif %}
{% endfor %}
</div>

相关问题 更多 >

    热门问题