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

Атрибут number

Атрибут number класса Page возвращает номер текущей страницы в пагинаторе. Нумерация страниц начинается с 1, поэтому первая страница всегда имеет номер 1. Этот атрибут полезен для отображения текущего номера страницы в интерфейсе, построения навигационных элементов или для проверки, какая страница сейчас активна.

Синтаксис

page.number

Атрибут доступен только для чтения. Попытка присвоить ему новое значение вызовет ошибку AttributeError.

Пример

Получим номер текущей страницы в представлении:

from django.core.paginator import Paginator from myapp.models import Article from django.shortcuts import render def article_list(request): articles = Article.objects.all().order_by('id') paginator = Paginator(articles, 10) page_number = request.GET.get('page') page = paginator.get_page(page_number) print(page.number) # Выведет номер текущей страницы return render(request, 'articles.html', {'page': page})

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

"2"

Пример

Используем атрибут number для построения навигации в шаблоне:

<div class="pagination"> <span>Страница {{ page.number }} из {{ page.paginator.num_pages }}</span> {% if page.has_previous %} <a href="?page={{ page.previous_page_number }}">Назад</a> {% endif %} <span>Текущая страница: {{ page.number }}</span> {% if page.has_next %} <a href="?page={{ page.next_page_number }}">Вперед</a> {% endif %} </div>

Пример

Используем атрибут number для условного отображения контента:

from django.core.paginator import Paginator from myapp.models import Article from django.shortcuts import render def article_list(request): articles = Article.objects.all().order_by('id') paginator = Paginator(articles, 5) page_number = request.GET.get('page') page = paginator.get_page(page_number) # Проверяем, первая ли это страница if page.number == 1: # Показываем специальный блок только на первой странице featured_articles = Article.objects.filter(is_featured=True)[:3] else: featured_articles = [] return render(request, 'articles.html', { 'page': page, 'featured_articles': featured_articles })

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

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