模板代码:
<nav aria-label="Page navigation" class="pull-right">
<ul class="pagination">
{% if publisher_list.has_previous %}
<li>
<a href="/CMS/publisherpage/?page={{ publisher_list.previous_page_number }}" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
{% else %}
<li class="disabled">
<a href="#" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
{% endif %}
{% for page_index in publisher_list.paginator.page_range %}
{% if page_num == page_index %}
<li class="active"><a href="/CMS/publisherpage/?page={{ page_index }}">{{ page_index }}</a></li>
{% else %}
<li><a href="/CMS/publisherpage/?page={{ page_index }}">{{ page_index }}</a></li>
{% endif %}
{% endfor %}
{% if publisher_list.has_next %}
<li>
<a href="/CMS/publisherpage/?page={{ publisher_list.next_page_number }}" aria-label="Next">
<span aria-hidden="true">»</span>
</a>
</li>
{% else %}
<li class="disabled">
<a href="#" aria-label="Next">
<span aria-hidden="true">»</span>
</a>
</li>
{% endif %}
</ul>
</nav>
视图函数代码:
# 分页功能
paginator = Paginator(publisher_list, 10)
page_num = request.GET.get('page', 1)
publisher_list = paginator.page(int(page_num))
context = {'publisher_list': publisher_list, 'page_num': int(page_num)}
return render(request, 'publisher.html', context)
readme:
样式用了bootstrap,代码的判断主要使用了paginator的几个方法:
paginator = Paginator(publisher_list, 10)
publisher_list = paginator.page(int(page_num))
publisher_list.previous_page_number()
publisher_list.next_page_number()
publisher_list.has_previous()
publisher_list.has_next()