Метод start_index
Метод start_index применяется к объекту Page и возвращает
порядковый номер первого элемента на текущей странице.
Нумерация начинается с единицы, то есть для первой страницы
метод вернёт 1, для второй - количество элементов
на первой странице плюс один, и так далее.
Метод полезен для отображения диапазона элементов,
например, «Показаны записи с 21 по 30».
Синтаксис
page.start_index()
Пример
Рассмотрим базовый пример использования метода start_index
для пагинации списка статей:
from 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)
Результат выполнения кода:
"11"
Пример
Используем метод для отображения диапазона элементов на странице вместе с общим количеством записей:
from 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)
Результат выполнения кода:
"31"
"45"
"52"
Пример
Используем метод в шаблоне для вывода информации о текущем положении в списке:
from 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}")
Результат выполнения кода:
"1. First article"
"2. Second article"
"3. Third article"
Смотрите также
-
метод
end_index,
который возвращает порядковый номер последнего элемента на странице -
атрибут
object_list,
который содержит список объектов на текущей странице -
атрибут
number,
который возвращает номер текущей страницы -
атрибут
paginator,
который возвращает объект пагинатора для текущей страницы