# The tag from django import template register = template.Library() @register.inclusion_tag('paginator.html', takes_context=True) def paginator(context): return { 'page_obj': context['page_obj'], 'paginator': context['paginator'], 'is_paginated': context['is_paginated'], 'object_list': context['object_list'], } # An example paginator.html {% if is_paginated %} <div class="pagination"> <span> {% ifnotequal page_obj.first page_obj.number %} <b><a href="?page={{ page_obj.first }}">|<</a></b> {% endifnotequal %} {% if page_obj.has_previous %} <b><a href="?page={{ page_obj.previous_page_number }}"><</a></b> {% endif %} {% for p in page_obj.paginator.pages %} {% ifequal p page_obj %} <b class="selected">{{ page_obj }}</b> {% else %} <b><a href="?page={{ p.number }}">{{ p }}</a></b> {% endifequal %} {% endfor %} {% if page_obj.has_next %} <b><a href="?page={{ page_obj.next_page_number }}">></a></b> {% endif %} {% ifnotequal page_obj.last page_obj.number %} <b><a href="?page={{ page_obj.last }}">>|</a></b> {% endifnotequal %} </span> </div> {% endif %}