{% if page.has_previous %}
« Previous
{% else %}
« Previous
{% endif %}
{% if page.paginator.trailing_set %}
{% for p in page.paginator.trailing_set %}
{{ p }}
{% endfor %}
...
{% endif %}
{% for p in page.paginator.adjacent_set %}
{% ifequal p page.number %}
{{ p }}
{% else %}
{{ p }}
{% endifequal %}
{% endfor %}
{% if page.paginator.leading_set %}
...
{% for p in page.paginator.leading_set %}
{{ p }}
{% endfor %}
{% endif %}
{% if page.has_next %}
Next »
{% else %}
Next »
{% endif %}