Сокращенный диапазон страниц в Django
Если страниц много, все номера
показывать неудобно. Метод
get_elided_page_range
оставляет края и окрестность
текущей страницы, остальное
заменяет многоточием
(paginator.ELLIPSIS):
page_range = list(
paginator.get_elided_page_range(
page_obj.number,
on_each_side=2,
on_ends=1,
)
)
В шаблоне сравнивают с
ELLIPSIS:
{% for num in page_range %}
{% if num == page_obj.paginator.ELLIPSIS %}
...
{% else %}
<a href="?page={{ num }}">{{ num }}</a>
{% endif %}
{% endfor %}
Передайте в шаблон результат
get_elided_page_range
и выведите компактную навигацию.