Атрибут count
Атрибут count класса Paginator возвращает общее
количество объектов в наборе данных, который передается в
пагинатор. Этот атрибут вычисляется на основе переданного
QuerySet или списка и позволяет определить, сколько всего
элементов необходимо разбить на страницы.
Синтаксис
paginator.count
Пример
Давайте создадим пагинатор для статей и получим общее количество записей:
from 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}")
Результат выполнения кода:
"Total articles: 25"
Пример
Давайте используем атрибут count для проверки наличия данных перед пагинацией:
from 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")
Результат выполнения кода:
"Page 1 has 5 articles"
Пример
Давайте используем count для отображения информации о количестве страниц:
from 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}")
Результат выполнения кода:
"Total items: 25"
"Items per page: 10"
"Total pages: 3"