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 берет на себя логику вычисления количества страниц, проверки валидности номера страницы и предоставляет удобный интерфейс для доступа к данным текущей страницы.