django中的分页器
Posted
技术标签:
【中文标题】django中的分页器【英文标题】:Paginator in django 【发布时间】:2019-01-17 00:11:15 【问题描述】:嗨,我在看https://docs.djangoproject.com/en/2.1/topics/pagination/ 关于 django 分页器的文档
在它使用的代码中
from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator
from django.shortcuts import render
def listing(request):
contact_list = Contacts.objects.all()
paginator = Paginator(contact_list, 25) # Show 25 contacts per page
page = request.GET.get('page')
contacts = paginator.get_page(page)
return render(request, 'list.html', 'contacts': contacts)
在模板中使用
<div class="pagination">
<span class="step-links">
% if contacts.has_previous %
<a href="?page=1">« first</a>
<a href="?page= contacts.previous_page_number ">previous</a>
% endif %
<span class="current">
Page contacts.number of contacts.paginator.num_pages .
</span>
% if contacts.has_next %
<a href="?page= contacts.next_page_number ">next</a>
<a href="?page= contacts.paginator.num_pages ">last »</a>
% endif %
</span>
</div>
我了解所有代码,除了第一次渲染页面的价值是什么
在一行
page = request.GET.get('page')
我知道 django 运行
?page=值
并将值传递给页面参数,但第一次渲染时页面的值是什么
【问题讨论】:
【参考方案1】:page
在这种情况下将是None
,然后get_page
将返回第一页。
【讨论】:
谢谢,然后分页器中的 None 将是 1 不,contacts = paginator.get_page(page)
其中page=None
即contacts = paginator.get_page(None)
返回第一页,如果在查询参数中有 ?page=3 那么page
将是 3
非常感谢您的帮助以上是关于django中的分页器的主要内容,如果未能解决你的问题,请参考以下文章