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



我正在尝试弄清楚如何在模板中使用 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 中完成此操作吗?

谢谢

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

最新更新