码迷,mamicode.com
首页 > 其他好文 > 详细

Django 分页的实现

时间:2019-02-02 11:11:34      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:bsp   else   cti   ret   next   return   lte   turn   end   

一、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 分页的实现

标签:bsp   else   cti   ret   next   return   lte   turn   end   

原文地址:https://www.cnblogs.com/mxsf/p/10347798.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!