Метод end_index

Метод end_index применяется к объекту Page и возвращает порядковый номер последнего элемента на текущей странице, начиная с 1. Этот метод полезен для отображения информации о диапазоне элементов на странице, например, для вывода сообщения "Показаны записи с X по Y". Если страница пуста, метод возвращает None.

Синтаксис

pythonpage.end_index()

Пример

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

pythonfrom 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)

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

python"10"

Пример

Рассмотрим ситуацию с пустой страницей, которая может возникнуть, если на странице нет элементов:

pythonfrom 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)

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

python"None"

Пример

Используем метод для создания информативного сообщения о диапазоне отображаемых записей на странице:

pythonfrom 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)

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

python"Showing records from 16 to 30 (total: 45)"

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

  • метод start_index,
    который возвращает порядковый номер первого элемента на странице
  • метод has_next,
    который проверяет наличие следующей страницы
  • метод has_previous,
    который проверяет наличие предыдущей страницы
  • метод next_page_number,
    который возвращает номер следующей страницы