【发布时间】:2016-12-29 13:15:54
【问题描述】:
我已经使用通用 ListView 实现了分页器。我的问题是,对于包含许多页面的列表,它会显示所有页码,而不是当前页面之前和之后的五页。有没有简单的方法来解决这个问题?
在views.py中:
class CarList(LoginRequiredMixin, ListView):
model = Car
paginate_by = 20
在html中:
{% if is_paginated %}
<ul class="pagination pagination-centered">
{% if page_obj.has_previous %}
<li><a href="/car?ordering={{ current_order }}&page=1"><<</a></li>
<li><a href="/car?ordering={{ current_order }}&page={{ page_obj.previous_page_number }}"><</a></li>
{% endif %}
{% for i in paginator.page_range %}
<li {% if page_obj.number == i %} class="active" {% endif %}><a href="/car?ordering={{ current_order }}&page={{i}}">{{i}}</a></li>
{% endfor %}
{% if page_obj.has_next %}
<li><a href="/car?ordering={{ current_order }}&page={{ page_obj.next_page_number }}">></a></li>
<li><a href="/car?ordering={{ current_order }}&page={{ page_obj.paginator.num_pages }}">>></a></li>
{% endif %}
</ul>
{% endif %}
【问题讨论】:
标签: python django python-3.x pagination django-views