Paginator
django内置Paginator类(对象):
使用时需要传入query_set和默认的每页显示数量:
page_object = Paginator(query_set, per_page)
page_object可以直接作为关键字参数传给html文件:
data= { 'student_object': student_object}
return render(request, 'html', context=data
在html文件中使用for循环获取page_object里的内容:
通过page_object的object_list属性来获取列表 然后循环获取
<ul>
{% for student in page_object.object_list %}
<li>{{ student.s_name }}</li>
{% endfor %}
</ul>
Paginator对象有属性page_range可以获取页码列表
通过点击页码来实现跳转
<ul>
{% for page_index in page_range %}
<li><a href="{% url 'first:get_student_with_page' %}?page={{ page_index }}">{{ page_index }}</a></li>
{% endfor %}
</ul>
| 属性: | |
|---|---|
| count | 对象总数 |
| num_pages | 页面总数 |
| page_range | 页码列表,从1开始 |
| 方法 | |
|---|---|
| page(整数) | 获得一个page对象 |
| 常见错误 | |
|---|---|
| InvalidPage | page()传递的页码无效 |
| PageNotAninteger | page()传递的不是整数 |
| Empty | page()传递的值有效但是没有数据 |
Page
对象获得,通过Paginator的page()方法获得
| 属性: | |
|---|---|
| object_list | 当前页面上所有的数据对象 |
| number | 当前页的页码数 |
| paginator | 当前page关联的Paginator对象 |
| 方法 | |
|---|---|
| has_next() | 判断是否有下一页 |
| has_previous() | 判断是否有上一页 |
| has_other_pages() | 判断是否有上一页或者下一页 |
| next_page_number() | 返回下一页的页码 |
| previous_page_number() | 返回上一页的页码 |
| len() | 返回当前页的数据的个数 |
942

被折叠的 条评论
为什么被折叠?



