django paginator - как показать все доступные номера страниц

у меня есть простой вопрос:

у меня есть это {{ objects.paginator.num_pages }} в шаблоне, который дает мне общее количество страниц, которые содержат элементы.

теперь я хочу показать эти номера страниц, как это

1 | 2 | 3 | 4 | 5

для этого мне нужно сделать дляпеременная элемента до the num_pages. как for i to num_pages.

как это возможно в шаблоне django? я читаю некоторые фрагменты, но их немного трудно понять для меня.

2 ответов


можно использовать page_range

{% for page in objects.paginator.page_range %}
    {% if forloop.counter != 1 %} | {% endif %}
    {{ page }}
{% endfor %}

отформатирован с помощью Twitter bootstrap и ссылок:

 <ul class="pagination nav navbar-nav">
    {% if objects.has_previous %}
            <li><a href="?page={{ objects.previous_page_number }}">Prev</a></li>
    {% endif %}
    {% for page in objects.paginator.page_range %}
        <li class="{% if objects.number == page  %}active{% endif %}"><a href="?page={{page }}">{{ page }}</a></li>
    {% endfor %}

    {% if objects.has_next %}
        <li> <a href="?page={{ objects.next_page_number }}">Next</a></li>
    {% endif %}
 </ul>