{# Get the filter parameters (e.g., "q=searchterm&job=dev") #}
{% add_get_params request.GET as filter_params %}
{# --- First & Previous --- #}
{% if page_obj.has_previous %}
{% endif %}
{# --- Page Numbers --- #}
{% for num in page_obj.paginator.page_range %}
{% if page_obj.number == num %}
{{ num }}
{% elif num > page_obj.number|add:'-3' and num < page_obj.number|add:'3' %}
{{ num }}
{% elif num == 1 or num == page_obj.paginator.num_pages %}
{# Always show first and last page number #}
{{ num }}
{% elif num == page_obj.number|add:'-3' or num == page_obj.number|add:'3' %}
{# Show ellipsis #}
...
{% endif %}
{% endfor %}
{# --- Next & Last --- #}
{% if page_obj.has_next %}
{% endif %}
{# Page info #}
{% blocktrans %}Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}{% endblocktrans %}