Skip to content

Instantly share code, notes, and snippets.

@lmn3x
Last active October 31, 2021 06:14
Show Gist options
  • Save lmn3x/64ac9ff71b023fd1080387ff6a401561 to your computer and use it in GitHub Desktop.
Save lmn3x/64ac9ff71b023fd1080387ff6a401561 to your computer and use it in GitHub Desktop.
bootstrap pagination in django
<div class="d-flex justify-content-center">
<span class="float-right">
{{ page_obj.start_index }}تا{{ page_obj.end_index }} از {{ page_obj.paginator.count }}
</span>
<nav aria-label="Page navigation example">
<ul class="pagination">
{% if page_obj.has_previous %}
<li class="page-item"><a class="page-link" href="?page=1
{% for key,value in request.GET.items %}{% if key != 'page' %}&{{ key }}={{ value }} {% endif %}{% endfor %}">first</a>
</li>
<li class="page-item"><a class="page-link" href="?page=
{{ page_obj.previous_page_number }}{% for key,value in request.GET.items %}{% if key != 'page' %}&{{ key }}={{ value }} {% endif %}{% endfor %}">previous</a>
</li>
{% endif %}
{# Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}.#}
{# {% for pagenum in page_obj.paginator.page_range %}#}
{# <li class="page-item {% if page_obj.number == pagenum %} active {% endif %} ">#}
{# <a class="page-link" href="?{{ page_param|default:"page" }}={{ pagenum }}{% for key,value in request.GET.items %}{% if key != 'page' %}&{{ key }}={{ value }} {% endif %}{% endfor %}">{{ pagenum }}</a>#}
{# </li>#}
{# {% endfor %}#}
{% if page_obj.number|add:'-4' > 1 %}
<li class="page-item"><a class="page-link" href="?page={{ page_obj.number|add:'-5' }}{% for key,value in request.GET.items %}{% if key != 'page' %}&{{ key }}={{ value }} {% endif %}{% endfor %}">&hellip;</a></li>
{% endif %}
{% for i in page_obj.paginator.page_range %}
{% if page_obj.number == i %}
<li class="page-item active "><a class="page-link">{{ i }} <span class="sr-only">(current)</span></a></li>
{% elif i > page_obj.number|add:'-5' and i < page_obj.number|add:'5' %}
<li class="page-item"><a class="page-link" href="?page={{ i }}{% for key,value in request.GET.items %}{% if key != 'page' %}&{{ key }}={{ value }} {% endif %}{% endfor %}">{{ i }}</a></li>
{% endif %}
{% endfor %}
{% if page_obj.paginator.num_pages > page_obj.number|add:'4' %}
<li class="page-item" ><a class="page-link" href="?page={{ page_obj.number|add:'5' }}{% for key,value in request.GET.items %}{% if key != 'page' %}&{{ key }}={{ value }} {% endif %}{% endfor %}">&hellip;</a></li>
{% endif %}
{% if page_obj.has_next %}
<li class="page-item"><a class="page-link"
href="?page=
{{ page_obj.next_page_number }}{% for key,value in request.GET.items %}{% if key != 'page' %}&{{ key }}={{ value }} {% endif %}{% endfor %}">next</a>
</li>
<li class="page-item"><a class="page-link" href="?page=
{{ page_obj.paginator.num_pages }}{% for key,value in request.GET.items %}{% if key != 'page' %}&{{ key }}={{ value }} {% endif %}{% endfor %}">last</a>
</li>
{% endif %}
</ul>
</nav>
</div>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment