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

时间:2018-10-05 06:27:24

标签: django django-templates django-views django-pagination

我正在尝试弄清楚如何在模板中使用Django分页显示“显示1-10,共52个结果”之类的东西。

我正在为我的应用程序使用CBV。

这就是我所做的

在我的views.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 个答案:

答案 0 :(得分:0)

您可以获取查询集的数量,并在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