分页
Paginator 分页器
Paginator用于分页,但Paginator并不具体管理具体的页的处理,而是使用Page对象管理具体页面
- 创建分页器对象
格式: Paginator(<query_set查询集>,每页显示数据的条数)
-
对象的属性
count 分页对象的个数
num_pages 总页数
page_range 页码的列表
-
方法
page(num) 返回page对象 如果给定的页码不存在 则抛出异常
page 对象
page对象具体负责每页的处理,包括每页的数据,当前页的页码,是否有上一页或下一页等。
- 属性:
- object_list 当前页码上的所有数据
- number 当前页码值
- paginator 返回Paginator的对象
- 方法:
- has_next 是否有下一页
- has_previous 判断是否有上一页
- has_other_pages 是否有上一页 或者下一页
- next_page_number 返回下一页的页码
- previous_page_number 返回上一页的页码
- len 返回当前页数据的个数
# views.py
def userlist(request,page=1):
users = User.objects.all()
# 实例化分页对象,一页两条记录
pagination = Paginator(users,2)
page = pagination.page(page) #某一页的分页对象
return render(request,'vc/userlist.html',context={
'data':page.object_list, #当前页的数据(列表)
'page_range':pagination.page_range,#页码范围
'page':page
})