当页码为 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 时,它工作正常的主要内容,如果未能解决你的问题,请参考以下文章

当页码更改时,React 分页不会更新页面数据

[Django学习]分页

django之设置分页

django基础知识之分页:

翻译(数据页和数据行)

Django -- 分页 -- 批量导入