|
官方文檔連接地址為:https://docs./en/2.1/topics/pagination/ 在創(chuàng)建分頁(yè)前先導(dǎo)入模塊; from django.core.paginator import Paginator paginator對(duì)象: 創(chuàng)建格式為: blogs = Blog.objects.all() paginator = Paginator(blogs,10)#實(shí)例化一個(gè)分頁(yè)對(duì)象,設(shè)置每一頁(yè)顯示10條 這里創(chuàng)建分頁(yè)的同時(shí)時(shí)一般需要注意下我們?cè)趍odels.py是否這是默認(rèn)排序,否則會(huì)彈出提示信息。 paginator屬性: Paginator.count----所有頁(yè)面中對(duì)象的總數(shù) Paginator.num_pages----總頁(yè)數(shù) Paginator.page_range----頁(yè)碼迭代器 paginator方法: Paginator.get_page(number)此方法為2.0新方法。 返回Page具有給定的從1開(kāi)始的索引對(duì)象,同時(shí)還處理超出范圍和無(wú)效頁(yè)碼,如果頁(yè)碼不是數(shù)字,則返回第一頁(yè)。如果頁(yè)碼為負(fù)數(shù)或大于頁(yè)數(shù),則返回最后一頁(yè)。 Page對(duì)象: paginator對(duì)象的get_page(num)方法返回得到Page對(duì)象 page1 = paginator.get_page(1) Page屬性: Page.object_list----此頁(yè)面上的對(duì)象列表。 Page.number----此頁(yè)面上從1開(kāi)始頁(yè)碼。 Page.paginator----關(guān)聯(lián)paginator對(duì)象。 Page方法: Page.has_next() True如果有下一頁(yè)則返回。 Page.has_previous() True如果有上一頁(yè),則返回 Page.has_other_pages() True如果有下一頁(yè)或上一頁(yè),則返回。 Page.next_page_number() 返回下一頁(yè)編號(hào)。InvalidPage如果下一頁(yè)不存在則引發(fā)。 Page.previous_page_number() 返回上一頁(yè)編號(hào)。InvalidPage如果前一頁(yè)不存在則引發(fā)。 Page.start_index() 返回頁(yè)面上第一個(gè)對(duì)象的從1開(kāi)始的索引,相對(duì)于分頁(yè)器列表中的所有對(duì)象。例如,當(dāng)為每頁(yè)包含2個(gè)對(duì)象的5個(gè)對(duì)象的列 表進(jìn)行分頁(yè)時(shí),start_index()將返回第二個(gè)頁(yè)面 3。 Page.end_index() 返回頁(yè)面上最后一個(gè)對(duì)象的從1開(kāi)始的索引,相對(duì)于分頁(yè)器列表中的所有對(duì)象。例如,當(dāng)為每頁(yè)包含2個(gè)對(duì)象的5個(gè)對(duì)象的 列表進(jìn)行分頁(yè)時(shí),end_index()將返回第二個(gè)頁(yè)面 4。 Page.previous_page_number() 返回上一頁(yè) Page.next_page_number() 返回下一頁(yè) paginator在views.py中使用: def blog_list(request): blogs_all_list = Blog.objects.all() paginator = Paginator(blogs_all_list,10) page_num = request.GET.get('page', 1) page_of_blogs = paginator.get_page(page_num) blog_types = BlogType.objects.all() #blogs_counts = Blog.objects.all().count() return render(request,'myseit/blog_list.html',{'blog_types':blog_types,'page_of_blogs':page_of_blogs,'paginator':paginator}) 在html文件中使用: <div class="panel-heading">{% block list_with_type %}博客列表(一共有{{ page_of_blogs.paginator.count }}博客){% endblock %}</div> yawns_ |
|
|