Bonky
Neither believe nor reject anything, because any other person has rejected or believed it. Heaven has given you a mind for judging truth and error, Use it.
By Thomas Jefferson

django 的分页器 – Paginator

django提供了非常好用的分页类 Paginator,类位于django/core/paginator.py

Paginator

构造函数

Paginator 类的构造函数如下

一般来说常用就前两个选项

  • object_list – 可以是 list,tuple或自己定义的可分割的(sliceable) 的类,自定义类必须包括count()__len__() 两个方法
  • perpage – 一个页面最大可以包含的项目

还有一些可选选项

  • orphans – 作用是最后一页如果少于 orphans,那么最后一页的项目会被加到前一页
  • allow_empty_first_page – 是否允许第一页为空

方法

get_page(number)

返回第 number 页的 page 类,如果输入的不是数字,那就返回第一页;如果是负数或者大于总页数,那么会转到最后一页

Page(number)

返回 page 类,但如果输入不合法,那么就会返回错误InvalidPage

属性

  • count:返回所有的对象(其实就是object_list的长度)
  • num_pages:页的总数
  • page_range:页的序号的一个列表,从1开始

例子

下面是官方文档的一个例子

page

方法

  • has_next – 如果存在下一页返回 True
  • has_previous – 如果存在前一页返回 True
  • has_other_pages – 如果存在下一页或者前一页返回 True
  • next_page_number – 如果存在下一页返回下一页的号码
  • previous_page_number – 如果存在前一页返回前一页的号码
  • start_index – 这一页的首个项目在 object_list 的序号(从1开始)。如总共10个项目,3个一页,那么第二页的start_index 为 4
  • end_index – 这一页的最后一个项目在 object_list 的序号(从1开始)

属性

  • object_list:返回这一页所有的objects
  • number:返回页数
  • paginator:返回相关的Paginator

例子

page 类的使用方法如下

Share

You may also like...

发表评论

电子邮件地址不会被公开。 必填项已用*标注