10

我正在使用django-pagination对我的对象列表进行分页。它工作完美。我想给页面上的每个对象一个数字,我正在使用{{forloop.counter}}它,但问题是它从每页上的 1 开始对象计数。我想显示实际的对象数。

假设我每页分页 10 个对象,那么我想将第 2 页上的第一个对象的对象编号设为 11。我尝试为此编写模板过滤器,但不知何故我无法同时发送request.get.page和发送{{forloop.counter}}到我的过滤器功能。我不能那样做。

任何指导帮助将不胜感激。

4

3 回答 3

16

您可以使用add模板标签将当前计数从分页器添加到 forloop

{{ forloop.counter|add:paginator.page.start_index }}
于 2012-02-21T07:17:37.513 回答
16

我已经在我的模板中使用了它并且它工作正常

{{ page_obj.start_index|add:forloop.counter0 }}

或者你可以使用

 {% for obj in obj_list %}
     {{ forlopp.counter0|add:obj_list.start_index }}
 {% endfor %}
于 2017-03-21T13:38:51.447 回答
1

使用从零开始的 for 循环计数器添加分页器开始索引

在模板中

{% 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)
于 2016-09-21T14:42:01.237 回答