Как показать правильные номера объектов при использовании 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)