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 分页的实现的主要内容,如果未能解决你的问题,请参考以下文章