Django Pagination Links
=======================

Small package for creating a list of page links from a Django paginator object,
similar in style to the Django admin - showing the start and end pages, but
only showing a limited list of pages in the middle.

Installation
------------

Using pip_:

.. _pip: https://pip.pypa.io/

.. code-block:: console

    $ pip install django-paginationlinks


Edit your Django project's settings module, and add ``paginationlinks``:

.. code-block:: python

    INSTALLED_APPS = (
        # ...
        'paginationlinks',
    )

Usage
-----

Load the template tag:

.. code-block::

    {% load pagination_links %}

Typical usage, which shows 1 page on each end, and 1 on each side of the current page:

.. code-block::

    {% get_pagination_links paginator page_obj as pagination_links %}

However the number of pages on each side can be customised, as well as how many pages at the end -
both are optional arguments:

.. code-block::

    {% get_pagination_links paginator page_obj on_each_side=1 on_ends=2 as pagination_links %}

A more fully featured example for a site:

.. code-block::

    {% load pagination_links %}

    {% if page_obj.has_other_pages %}
        {% get_pagination_links paginator page_obj as pagination_links %}
        <ul>
            {% for page_num in pagination_links %}
                {% if page_num.is_current %}
                    <li class="current">{{ page_num.number }}</li>
                {% elif page_num.is_filler %}
                    <li class="filler">—</li>
                {% else %}
                    <li><a href="?page={{ page_num.number }}">{{ page_num.number }}</a></li>
                {% endif %}
            {% endfor %}
        </ul>
    {% endif %}
