Для создания пагинации в Django для итерируемых объектов в шаблоне, вы можете использовать встроенный модуль Paginator
.
Вот пошаговая инструкция, как добавить пагинацию:
Шаг 1: Импортируйте Paginator из модуля django.core.paginator:
from django.core.paginator import Paginator
Шаг 2: Создайте объект Paginator, передавая ему итерируемый объект и количество элементов, отображаемых на одной странице. Например, для отображения 10 элементов на странице:
paginator = Paginator(my_iterable_object, 10)
Шаг 3: Получите номер запрошенной страницы из параметров запроса. Если номер страницы не указан, присвойте ему значение 1:
page_number = request.GET.get('page', 1)
Шаг 4: Получите объект Page, используя метод get_page
у объекта Paginator:
page_obj = paginator.get_page(page_number)
Шаг 5: Теперь вы можете использовать объект page_obj
в своем шаблоне для отображения нужных элементов. Например, вы можете вывести список объектов на текущей странице:
{% for obj in page_obj %} {{ obj }} {% endfor %}
Шаг 6: Добавьте ссылки на предыдущую и следующую страницы, а также ссылки на конкретные страницы:
<div class="pagination"> {% if page_obj.has_previous %} <a href="?page={{ page_obj.previous_page_number }}">previous</a> {% endif %} <span class="current-page">{{ page_obj.number }}</span> {% if page_obj.has_next %} <a href="?page={{ page_obj.next_page_number }}">next</a> {% endif %} </div>
Это базовая реализация пагинации, которая позволяет вам отображать итерируемые объекты по страницам. Вы можете настроить количество отображаемых элементов на странице, добавить дополнительные ссылки и стилизовать ваш шаблон, чтобы соответствовать вашим потребностям.