python django pagination的使用记录
一、背景
使用django的pagination,对表格等进行分页。
二、变量
在views 中增加变量pagination_url,用于页面的导航。
三、将全部页面均展示出来
(一)templates的page_nav.htmll代码
<nav aria-label="Page navigation">
<ul class="pagination">
{% if is_paginated %}
<li class="page-item">
{% if page_obj.has_previous %}
<a href="{% url pagination_url %}?page={{ page_obj.previous_page_number}}"
class="page-link" aria-label="上一页">
<span aria-hidden="true">«</span>
<span class="sr-only">上一页</span>
</a>
{% else %}
<a href="#" class="page-link" aria-label="首页">
<span aria-hidden="true">«</span>
<span class="sr-only">首页</span>
</a>
{% endif %}
</li>
{% for current in paginator.page_range %}
{% if current == page_obj.number %}
<li class="page-item active"><a class="page-link"
href="{% url pagination_url %}?page={{current}}">{{current}}</a></li>
{% else %}
<li class="page-item"><a class="page-link"
href="{% url pagination_url %}?page={{current}}">{{current}}</a></li>
{% endif %}
{% endfor %}
<li class="page-item">
{% if page_obj.has_next %}
<a class="page-link"
href="{% url pagination_url %}?page={{ page_obj.next_page_number }}"
aria-label="下一页">
<span class="sr-only">下一页</span>
<span aria-hidden="true">»</span>
</a>
{% else %}
<a href="#" class="page-link" aria-label="末页">
<span class="sr-only">末页</span>
<span aria-hidden="true">»</span>
</a>
{% endif %}
</li>
{% endif %}
</ul>
</nav>
(二)views代码
class Listview(ListView):
template_name = 't/listview.html'
queryset = models.T.objects.all()
paginate_by = 5
extra_context = {
'pagination_url':'t:listview'
}
(三)结果