Как показать правильные номера объектов при использовании django-pagination

Я использую Джанго-пагинация для разбиения на страницы списка объектов. Он работает безупречно. Я хочу дать номер каждому объекту на странице, и я использую {{forloop.counter}} для этого, но проблема в том, что он запускает количество объектов от 1 на каждой странице. Я хотел показать фактическое количество объектов.

скажем, если я разбиваю на страницы 10 объектов на странице, то я хочу, чтобы номер объекта как 11 для первого объекта на странице 2. Я попытался написать шаблон фильтра для этого, но почему - то я не в состоянии отправить оба request.get.page и {{forloop.counter}} к моей функции фильтра. Я не могу сделать это таким образом.

любая помощь для направления будет оценена.

3 ответов


можно использовать add тег шаблона, чтобы добавить текущее число из пагинатор к дляпеременная элемента

{{ forloop.counter|add:paginator.page.start_index }}

я использовал это в своем шаблоне и его работа правильно

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

добавить индекс начала пагинатора с помощью счетчика циклов, начиная с нуля

в шаблоне

{% for object in page_objects %}
    ...
    {{ forloop.counter0|add:page_objects.start_index }}
    ...
    ...
{% endfor %}

in view

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)