当页码为 1 时,num_pages 总是为 1,当页码大于 1 时,它工作正常
Posted
技术标签:
【中文标题】当页码为 1 时,num_pages 总是为 1,当页码大于 1 时,它工作正常【英文标题】:whenever the page number is 1,the num_pages always gets 1,when the page number greater than 1,it works fine 【发布时间】: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 【参考方案1】:这是因为我使用的是 django-pagination-bootstrap 并且我添加了代码:
% autopaginate object_list 10 %
当我删除代码时,它工作正常。
【讨论】:
以上是关于当页码为 1 时,num_pages 总是为 1,当页码大于 1 时,它工作正常的主要内容,如果未能解决你的问题,请参考以下文章