Метод start_index

Метод start_index применяется к объекту Page и возвращает порядковый номер первого элемента на текущей странице. Нумерация начинается с единицы, то есть для первой страницы метод вернёт 1, для второй - количество элементов на первой странице плюс один, и так далее. Метод полезен для отображения диапазона элементов, например, «Показаны записи с 21 по 30».

Синтаксис

pythonpage.start_index()

Пример

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

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

# Get all articles
articles = Article.objects.all().order_by('id')

# Create paginator with 10 items per page
paginator = Paginator(articles, 10)

# Get second page
page = paginator.page(2)

# Get start index
start = page.start_index()

print(start)

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

python"11"

Пример

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

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

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

# Get third page
page = paginator.page(3)

start = page.start_index()
end = page.end_index()
total = paginator.count

print(start)
print(end)
print(total)

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

python"31"
"45"
"52"

Пример

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

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

articles = Article.objects.all()
paginator = Paginator(articles, 20)

# Get first page
page = paginator.page(1)

start = page.start_index()
object_list = page.object_list

# Show items with their global numbers
for i, article in enumerate(object_list, start=start):
  print(f"{i}. {article.title}")

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

python"1. First article"
"2. Second article"
"3. Third article"

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

  • метод end_index,
    который возвращает порядковый номер последнего элемента на странице
  • атрибут object_list,
    который содержит список объектов на текущей странице
  • атрибут number,
    который возвращает номер текущей страницы
  • атрибут paginator,
    который возвращает объект пагинатора для текущей страницы