num_pages
Атрибут num_pages класса Paginator возвращает общее количество страниц, на которые разбит набор объектов. Это значение вычисляется на основе общего количества объектов и размера страницы. Атрибут доступен только для чтения и полезен для отображения информации о пагинации в шаблонах или представлениях.
Синтаксис
paginator.num_pages
Пример
Получим общее количество страниц для набора из 25 объектов с размером страницы 10:
from django.core.paginator import Paginator
# Создаем список из 25 объектов
items = list(range(1, 26))
paginator = Paginator(items, 10)
total_pages = paginator.num_pages
print(f"Total pages: {total_pages}")
Результат выполнения кода:
"Total pages: 3"
Пример
Используем атрибут num_pages в представлении для передачи количества страниц в шаблон:
from django.core.paginator import Paginator
from django.shortcuts import render
from myapp.models import Article
def article_list(request):
articles = Article.objects.all()
paginator = Paginator(articles, 5)
total_pages = paginator.num_pages
return render(request, 'articles.html', {
'total_pages': total_pages,
})
Пример
Проверим, сколько страниц будет при пустом наборе объектов:
from django.core.paginator import Paginator
empty_list = []
paginator = Paginator(empty_list, 10)
total_pages = paginator.num_pages
print(f"Pages for empty list: {total_pages}")
Результат выполнения кода:
"Pages for empty list: 1"
Пример
Сравним количество страниц для разного размера страницы:
from django.core.paginator import Paginator
items = list(range(1, 101))
paginator_10 = Paginator(items, 10)
paginator_20 = Paginator(items, 20)
paginator_50 = Paginator(items, 50)
print(f"10 items per page: {paginator_10.num_pages}")
print(f"20 items per page: {paginator_20.num_pages}")
print(f"50 items per page: {paginator_50.num_pages}")
Результат выполнения кода:
"10 items per page: 10"
"20 items per page: 5"
"50 items per page: 2"
Смотрите также
-
класс
Paginator,
который создает объект для разбивки данных на страницы -
атрибут
count,
который возвращает общее количество объектов в пагинаторе -
атрибут
page_range,
который возвращает диапазон номеров страниц -
метод
page,
который возвращает объект страницы по ее номеру