Метод has_other_pages
Метод has_other_pages применяется к объекту страницы Page
и возвращает булево значение. Метод полезен для проверки,
есть ли у текущей страницы другие страницы в общем списке,
что помогает определить, нужно ли отображать элементы
пагинации (например, кнопки "Предыдущая" и "Следующая")
в шаблоне.
Синтаксис
page.has_other_pages()
Пример
Давайте проверим, есть ли другие страницы у текущей страницы пагинации:
from django.core.paginator import Paginator
from myapp.models import Article
# Создаем список объектов
articles = Article.objects.all()
# Создаем пагинатор с 10 объектами на страницу
paginator = Paginator(articles, 10)
# Получаем первую страницу
page = paginator.page(1)
# Проверяем наличие других страниц
res = page.has_other_pages()
print(res)
Результат выполнения кода:
"True"
Пример
Проверим наличие других страниц у последней страницы пагинации:
from django.core.paginator import Paginator
from myapp.models import Article
# Создаем список объектов
articles = Article.objects.all()
# Создаем пагинатор с 10 объектами на страницу
paginator = Paginator(articles, 10)
# Получаем последнюю страницу
last_page = paginator.page(paginator.num_pages)
# Проверяем наличие других страниц
res = last_page.has_other_pages()
print(res)
Результат выполнения кода:
"False"
Пример
Используем метод has_other_pages в шаблоне для условного отображения навигации:
{% if page.has_other_pages %}
<div class="pagination">
{% if page.has_previous %}
<a href="?page={{ page.previous_page_number }}">« Предыдущая</a>
{% endif %}
<span>Страница {{ page.number }} из {{ page.paginator.num_pages }}</span>
{% if page.has_next %}
<a href="?page={{ page.next_page_number }}">Следующая »</a>
{% endif %}
</div>
{% else %}
<span>Нет других страниц</span>
{% endif %}
Смотрите также
-
метод
has_next,
который проверяет наличие следующей страницы -
метод
has_previous,
который проверяет наличие предыдущей страницы -
метод
next_page_number,
который возвращает номер следующей страницы -
метод
previous_page_number,
который возвращает номер предыдущей страницы