Here is a quick recipe for Django templates, let’s say you are building a Django web which has many list views, and which has pagination, it’s wise to abstract the pagination template out to be reusable by all list view templates.
My preference is to keep all reusable templates in a partials
folder, and place the pagination template in there.
{% if is_paginated %} <nav> <ul class="pagination"> {% for page_num in paginator.page_range %} {% if page_num == page_obj.number %} <li class="active"><a href="#">{{ page_num }}</a></li> {% else %} <li><a href="{% url urlname page_num %}?{{ request.GET.urlencode }}">{{ page_num }}</a></li> {% endif %} {% endfor %} </ul> </nav> {% endif %}
The pagination template is switched by the ListView
populated context var is_paginated, also
makes use of urlname
variable to construct the page links.
Then in each list view template to include the pagination:
{% include 'partials/pagination.html' with urlname='quick-admin:listing-job-list' %}