【发布时间】:2015-11-19 00:54:00
【问题描述】:
我正在使用 django 分页,但我遇到了一个令人困惑的问题,即每当 page=1 时总页数变为 1。
当页数大于1时,总页数返回正确的页数。
例如,
当我请求 http://127.0.0.1:8000/circle_admin/circle/1/posts?page=1
Page {{ page_obj.number }} of {{ paginator.num_pages }} 是第 1 页,共 1 页
当我请求 http://127.0.0.1:8000/circle_admin/circle/1/posts?page=2
Page {{ page_obj.number }} of {{ paginator.num_pages }} 是第 2 页,共 4 页
后视图
class PostView(LoginRequiredMixin, generic.ListView):
template_name = 'circleadmin/circle_posts.html'
model = Post
queryset = Post.objects.all()
paginate_by = 5
def get_queryset(self):
return super(PostView, self).get_queryset().filter(circle=self.kwargs['circle_id'], is_removed=False).order_by('-updated_time')
Template.html
{% if page_obj.has_previous %}
<a href="?page={{ page_obj.previous_page_number }}">previous</a>
{% endif %}
<span class="current">
Page {{ page_obj.number }} of {{ paginator.num_pages }}.
</span>
{% if page_obj.has_next %}
<a href="?page={{ page_obj.next_page_number }}">next</a>
{% endif %}
我正在使用 Python 2.7 和 Django 1.8.3
有人有想法吗?感谢您的回答。
【问题讨论】:
-
我认为有错字是您的 class="current" html 标签。它应该是 {{page_obj.num_pages}}
标签: python django django-templates django-class-based-views