Sobes.tech
Back to questions
Junior — Middle
77

Как реализована разбивка данных на страницы в Django для отображения большой подборки информации?

Answer from AI

sobes.tech AI

В Django для разбивки данных на страницы используется класс Paginator из модуля django.core.paginator. Он позволяет разбить большой набор данных (например, QuerySet) на страницы фиксированного размера и удобно получать объекты для конкретной страницы.

Пример использования:

from django.core.paginator import Paginator

items = MyModel.objects.all()  # большой QuerySet
paginator = Paginator(items, 10)  # по 10 объектов на страницу

page_number = request.GET.get('page')  # номер страницы из запроса
page_obj = paginator.get_page(page_number)

# В шаблоне можно использовать page_obj для отображения элементов и навигации

Таким образом, Paginator берет на себя логику вычисления количества страниц, проверки валидности номера страницы и предоставляет удобный интерфейс для доступа к данным текущей страницы.