Атрибут page_range
Атрибут page_range применяется к экземпляру класса
Paginator и возвращает объект диапазона, который
представляет собой последовательность номеров страниц,
начиная с 1. Это удобно для создания навигации
по страницам в шаблонах или для итерации по всем
доступным номерам страниц в представлениях.
Синтаксис
paginator.page_range
Пример
Давайте создадим пагинатор для списка статей и выведем диапазон страниц:
from django.core.paginator import Paginator
from myapp.models import Article
# Get all articles
articles = Article.objects.all()
# Create paginator with 10 items per page
paginator = Paginator(articles, 10)
# Get page range
res = paginator.page_range
print(res)
Результат выполнения кода:
range(1, 6)
Пример
Давайте используем диапазон страниц для создания простой навигации в представлении:
from django.core.paginator import Paginator
from myapp.models import Article
from django.shortcuts import render
def article_list(request):
articles = Article.objects.all()
paginator = Paginator(articles, 5)
# Get current page number from request
page_number = request.GET.get('page', 1)
page_obj = paginator.get_page(page_number)
# Get page range for navigation
page_range = paginator.page_range
context = {
'page_obj': page_obj,
'page_range': page_range,
}
return render(request, 'articles/list.html', context)
Результат выполнения кода:
"Page range object: range(1, 11)"
Пример
Давайте используем диапазон страниц для проверки количества страниц и итерации:
from django.core.paginator import Paginator
from myapp.models import Article
articles = Article.objects.all()
paginator = Paginator(articles, 3)
# Get page range
page_range = paginator.page_range
# Check if range is iterable
if page_range:
print(f"Total pages: {len(page_range)}")
# Iterate through page numbers
for page_num in page_range:
print(f"Page {page_num} is available")
Результат выполнения кода:
"Total pages: 4"
"Page 1 is available"
"Page 2 is available"
"Page 3 is available"
"Page 4 is available"
Смотрите также
-
атрибут
num_pages,
который возвращает общее количество страниц -
атрибут
count,
который возвращает общее количество объектов -
метод
page,
который возвращает объект страницы по номеру -
метод
get_elided_page_range,
который возвращает сокращенный диапазон страниц