Атрибут count

Атрибут count класса Paginator возвращает общее количество объектов в наборе данных, который передается в пагинатор. Этот атрибут вычисляется на основе переданного QuerySet или списка и позволяет определить, сколько всего элементов необходимо разбить на страницы.

Синтаксис

pythonpaginator.count

Пример

Давайте создадим пагинатор для статей и получим общее количество записей:

pythonfrom django.core.paginator import Paginator
from myapp.models import Article

articles = Article.objects.all()
paginator = Paginator(articles, 10)
total_count = paginator.count

print(f"Total articles: {total_count}")

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

python"Total articles: 25"

Пример

Давайте используем атрибут count для проверки наличия данных перед пагинацией:

pythonfrom django.core.paginator import Paginator
from myapp.models import Article

articles = Article.objects.filter(status='published')
paginator = Paginator(articles, 5)

if paginator.count > 0:
  page_obj = paginator.page(1)
  print(f"Page 1 has {len(page_obj.object_list)} articles")
else:
  print("No published articles found")

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

python"Page 1 has 5 articles"

Пример

Давайте используем count для отображения информации о количестве страниц:

pythonfrom django.core.paginator import Paginator
from myapp.models import Article

articles = Article.objects.all()
paginator = Paginator(articles, 10)
items_per_page = 10
total_pages = paginator.num_pages
total_items = paginator.count

print(f"Total items: {total_items}")
print(f"Items per page: {items_per_page}")
print(f"Total pages: {total_pages}")

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

python"Total items: 25"
"Items per page: 10"
"Total pages: 3"

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

  • класс Paginator,
    который создает объект пагинатора
  • класс Page,
    который представляет одну страницу данных
  • атрибут num_pages,
    который возвращает общее количество страниц
  • метод page,
    который возвращает объект Page для указанного номера