django自带分页代码

django分页

{% if is_paginated %}
<div class="pagination-simple">
  <!-- 如果当前页还有上一页,显示一个上一页的按钮 -->
  {% if page_obj.has_previous %}
    <a href="?page={{ page_obj.previous_page_number }}">上一页</a>
  {% endif %}
  <!-- 显示当前页面信息 -->
  <span class="current">第 {{ page_obj.number }} 页 / 共 {{ paginator.num_pages }} 页</span>
  <!-- 如果当前页还有下一页,显示一个下一页的按钮 -->
  {% if page_obj.has_next %}
    <a href="?page={{ page_obj.next_page_number }}">下一页</a>
  {% endif %}
</div>
{% endif %}

自带属性

paginator ,即 Paginator 的实例。
page_obj ,当前请求页面分页对象。
is_paginated,是否已分页。只有当分页后页面超过两页时才算已分页。
object_list,请求页面的对象列表,和 post_list 等价。所以在模板中循环文章列表时可以选 post_list ,也可以选 object_list。

视图处理

blog/views.py

class IndexView(ListView):
    model = Post
    template_name = 'blog/index.html'
    context_object_name = 'post_list'
    # 指定 paginate_by 属性后开启分页功能,其值代表每一页包含多少篇文章
    paginate_by = 10
原文地址:https://www.cnblogs.com/uglyliu/p/7194086.html