如何在 CBV 的 django 分页中显示页面项目数?

Posted

技术标签:

【中文标题】如何在 CBV 的 django 分页中显示页面项目数?【英文标题】:How to show page items count in django pagination for CBV? 【发布时间】:2019-03-10 14:25:19 【问题描述】:

我试图弄清楚如何在我的模板中使用 django 分页来显示类似“显示 52 个中的 1-10 个”的内容。

我在我的应用程序中使用 CBV。

这就是我所做的

在我看来.py:

class viewbloglistview(LoginRequiredMixin,ListView):
    model = Blog
    paginate_by = 6

在我的模板中:

% if is_paginated %
      <ul class="pagination">
       % if page_obj.has_previous %
           <li><a href="?page= page_obj.previous_page_number ">Previous</a></li>
       % else %
            <li class="disabled"><span>Previous</span></li>
       % endif %
       % for i in paginator.page_range %
         % if page_obj.number == i %
             <li class="active"><span> i  <span class="sr-only">(current)</span></span></li>
         % else %
              <li><a href="?page= i "> i </a></li>
         % endif %
       % endfor %
          % if page_obj.has_next %
             <li><a href="?page= page_obj.next_page_number ">Next</a></li>
          % else %
               <li class="disabled"><span>Next</span></li>
       % endif %
      </ul>
% endif %

有什么想法可以在 django 中实现吗?

谢谢

【问题讨论】:

【参考方案1】:

您可以在您的views.py中获取查询集的计数并添加到您现有的上下文中:

def get_context_data(self, *, object_list=None, **kwargs):
    context = super().get_context_data(**kwargs)
    context['total'] = self.get_queryset().count
    return context

【讨论】:

以上是关于如何在 CBV 的 django 分页中显示页面项目数?的主要内容,如果未能解决你的问题,请参考以下文章

如何在分页中获取特定行的页码

如何使分页中的“无”字消失?

Django CBV 表单提交返回 JSON 显示为新页面

django对原始搜索结果进行分页

如何在 Kendo UI Grid 中为不同的页面设置不同的页面大小

限制bootstrap 3分页中显示的页数