РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
691 of 818 menu

Класс Page

Класс Page используется для работы с отдельной страницей результатов пагинации. Объект этого класса содержит список объектов (например, записей из базы данных) для текущей страницы и предоставляет методы для проверки наличия соседних страниц, получения их номеров, а также для определения индексов элементов на странице. Объект Page создается автоматически при вызове метода Paginator/method/page/"⁆page у экземпляра класса Paginator.

Синтаксис

from django.core.paginator import Paginator paginator = Paginator(object_list, per_page) page_obj = paginator.page(number)

Пример

Рассмотрим базовый пример получения объекта страницы и доступа к его элементам:

from django.core.paginator import Paginator from myapp.models import Article # All articles articles = Article.objects.all().order_by('id') # Create paginator: 10 articles per page paginator = Paginator(articles, 10) # Get second page page_obj = paginator.page(2) # Access page items for article in page_obj.object_list: print(article.title)

Результат выполнения кода:

"Article 11" "Article 12" "Article 13" "Article 14" "Article 15"

Пример

Используем методы has_next и has_previous для проверки наличия соседних страниц:

from django.core.paginator import Paginator from myapp.models import Article articles = Article.objects.all() paginator = Paginator(articles, 5) page_obj = paginator.page(3) if page_obj.has_previous(): print(f"Previous page: {page_obj.previous_page_number()}") if page_obj.has_next(): print(f"Next page: {page_obj.next_page_number()}") if page_obj.has_other_pages(): print("There are other pages")

Результат выполнения кода:

"Previous page: 2" "Next page: 4" "There are other pages"

Пример

Определим индексы первого и последнего элемента на текущей странице с помощью методов start_index и end_index:

from django.core.paginator import Paginator from myapp.models import Article articles = Article.objects.all().order_by('id') paginator = Paginator(articles, 10) page_obj = paginator.page(2) print(f"Start index: {page_obj.start_index()}") print(f"End index: {page_obj.end_index()}")

Результат выполнения кода:

"Start index: 11" "End index: 20"

Смотрите также

  • класс Paginator,
    который создает объект пагинации
  • метод page,
    который возвращает объект страницы по ее номеру
  • атрибут object_list,
    который содержит список элементов на странице
  • метод has_other_pages,
    который проверяет наличие других страниц, кроме текущей
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить