Django 分页的实现

Posted mxsf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 分页的实现相关的知识,希望对你有一定的参考价值。

一、views.py

 1 class ListView(View):
 2     """列表"""
 3     def get(self, request, type_id, page):
 4         """显示列表"""
 5         goods_list = GoodsSKU.objects.filter(type=type_id)
 6         paginator = Paginator(goods_list, 1)
 7         goods_list_page = paginator.page(page)
 8 
 9         num_pages = paginator.num_pages
10         if num_pages < 5:
11             pages = range(1, num_pages + 1)
12         elif page <= 3:
13             pages = range(1, 6)
14         elif num_pages - page <= 2:
15             pages = range(num_pages - 4, num_pages + 1)
16         else:
17             pages = range(page - 2, page + 3)
18 
19         content = {
20             goods_list_page: goods_list_page,
21             type_id: type_id,
22             pages: pages,
23         }
24         return render(request, list.html, content)

 

二、list.html

 1 <div class="pagenation">
 2     {% if goods_list_page.has_previous %}
 3         <a href="{% url ‘goods:list‘ type_id goods_list_page.previous_page_number  %}?sort={{ sort }}"><上一页</a>
 4     {% endif %}
 5     {% for page_index in pages %}
 6         {% if page_index == goods_list_page.number %}
 7             <a href="{% url ‘goods:list‘ type_id page_index %}?sort={{ sort }}" class="active">{{ page_index }}</a>
 8         {% else %}
 9             <a href="{% url ‘goods:list‘ type_id page_index %}?sort={{ sort }}" >{{ page_index }}</a>
10         {% endif %}
11     {% endfor %}
12     {% if goods_list_page.has_next %}
13         <a href="{% url ‘goods:list‘ type_id goods_list_page.next_page_number  %}?sort={{ sort }}"><下一页</a>
14     {% endif %}
15 </div>

 

以上是关于Django 分页的实现的主要内容,如果未能解决你的问题,请参考以下文章

Django 分页的实现

Django REST框架分页的jQuery代码

Django实现自定义分页

带有查询分页的 Django 搜索页面

分页的实现

114.实现手动分页效果