Метод end_index
Метод end_index применяется к объекту Page и возвращает порядковый номер последнего элемента на текущей странице, начиная с 1. Этот метод полезен для отображения информации о диапазоне элементов на странице, например, для вывода сообщения "Показаны записи с X по Y". Если страница пуста, метод возвращает None.
Синтаксис
page.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 = paginator.page(1)
end = page.end_index()
print(end)
Результат выполнения кода:
"10"
Пример
Рассмотрим ситуацию с пустой страницей, которая может возникнуть, если на странице нет элементов:
from django.core.paginator import Paginator
from myapp.models import Article
empty_queryset = Article.objects.filter(id__lt=0)
paginator = Paginator(empty_queryset, 10)
empty_page = paginator.page(1)
end = empty_page.end_index()
print(end)
Результат выполнения кода:
"None"
Пример
Используем метод для создания информативного сообщения о диапазоне отображаемых записей на странице:
from django.core.paginator import Paginator
from myapp.models import Article
articles = Article.objects.all().order_by('id')
paginator = Paginator(articles, 15)
page = paginator.page(2)
start = page.start_index()
end = page.end_index()
message = f"Showing records from {start} to {end} (total: {paginator.count})"
print(message)
Результат выполнения кода:
"Showing records from 16 to 30 (total: 45)"
Смотрите также
-
метод
start_index,
который возвращает порядковый номер первого элемента на странице -
метод
has_next,
который проверяет наличие следующей страницы -
метод
has_previous,
который проверяет наличие предыдущей страницы -
метод
next_page_number,
который возвращает номер следующей страницы