我正在使用 django-pagination 对我的对象列表进行分页。它运作完美。我想给页面上的每个对象一个数字,我正在使用{{forloop.counter}}
,但问题是它在每页上从1开始对象计数。我想显示实际的对象数。
如果我每页分页10个对象,那么我想在第2页上将第一个对象的对象编号设为11。我尝试为此编写模板过滤器,但不知怎的,我无法同时发送{{1 }和request.get.page
到我的过滤功能。我无法这样做。
任何有关方向的帮助都将受到赞赏。
答案 0 :(得分:14)
您可以使用add
模板标记将当前计数从分页器添加到forloop
{{ forloop.counter|add:paginator.page.start_index }}
答案 1 :(得分:6)
我在模板中使用了它并且它正常工作
{{ page_obj.start_index|add:forloop.counter0 }}
或者您可以使用
{% for obj in obj_list %}
{{ forlopp.counter0|add:obj_list.start_index }}
{% endfor %}
答案 2 :(得分:1)
使用for循环计数器从零开始添加paginator start index
模板中的
{% for object in page_objects %}
...
{{ forloop.counter0|add:page_objects.start_index }}
...
...
{% endfor %}
在视图中
objects = Abcdef.objects.all() # Abcdef is the modal
paginator = Paginator(objects, 10)
page_number = request.GET.get('page')
try:
page_objects = paginator.page(page_number)
except PageNotAnInteger:
page_objects = paginator.page(1)
except EmptyPage:
page_objects = paginator.page(paginator.num_pages)
data = {
"page_objects" : page_objects,
}
return render(request, "template/template.html", data)