我正在尝试弄清楚如何在模板中使用 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