{% load core %}
{% if page.paginator.num_pages > 1 %}
{% if page.has_previous %}
«
{% else %}
«
{% endif %}
{% with lbound=page.number|add:"-3" rbound=page.number|add:"3" %}
{% if lbound >= 1 %}
…
{% endif %}
{% for page_id in page.paginator.page_range %}
{% if page_id > lbound and page_id < rbound %}
{% ifequal page_id page.number %}
{{ page_id }}
{% else %}
{{ page_id }}
{% endifequal %}
{% endif %}
{% endfor %}
{% if rbound <= page.paginator.num_pages %}
…
{% endif %}
{% endwith %}
{% if page.has_next %}
»
{% else %}
»
{% endif %}
{% endif %}