``linaro-django-pagination`` allows for easy Digg-style pagination without modifying
your views.
-There are really 5 steps to setting it up with your projects (not including
-installation, which is covered in INSTALL.txt in this same directory.)
+There are really 5 steps to setting it up with your projects (not including
+installation, which is covered in :ref:`installation`.)
1. List this application in the ``INSTALLED_APPS`` portion of your settings
file. Your settings file might look something like::
INSTALLED_APPS = (
# ...
- 'pagination',
+ 'linaro_django_pagination',
)
MIDDLEWARE_CLASSES = (
# ...
- 'pagination.middleware.PaginationMiddleware',
+ 'linaro_django_pagination.middleware.PaginationMiddleware',
)
3. If it's not already added in your setup, add the request context processor.
Note that this replaces ``object_list`` with the list for the current page, so
you can iterate over the ``object_list`` like you normally would.
+
+ If you are using template ``{% block %}`` tags, the autopaginate tag must
+ exist in the same ``{% block %}`` where you access the paginated
+ ``object_list``.
+
+ In general the full syntax is::
+
+ autopaginate QUERYSET [PAGINATE_BY] [ORPHANS] [as NAME]
6. Now you want to display the current page and the available pages, so
{% paginate %}
- This does not take any arguments, but does assume that you have already
+ This does not require any arguments, but does assume that you have already
called autopaginate, so make sure to do so first.
Custom pagination templates
===========================
-In order to override the default pagination template use the extended form of
-the ``paginate`` tag::
+By default the objects will be paginated using a helper template
+"pagination/pagination.html". You can change this with an argument to
+``paginate``.
+
+In general the full syntax is::
+
+ paginate [using "TEMPLATE"]
+
+For example, to paginate posts on a hypothetical blog page you could use
+something like this::
{% autopaginate posts pagesize %}
{% paginate using "pagination/blog/post.html" %}
The default pagination template is contained in the
-``pagination/pagination.html`` file inside the distribution.
+``pagination/pagination.html`` file inside the distribution. You could extend
+it and only customize the parts you care about. Please inspect the template to
+see the blocks it defines that you could customize.
+
+
+Multiple paginations per page
+=============================
+
+You can use autopaginate/paginate multiple times in the same template. The only
+requirement is to call autopaginate before calling paginate. That is, paginate
+acts on the most recent call to autopaginate.
+
A Note About Uploads
====================
``PAGINATION_DISPLAY_DISABLED_NEXT_LINK``
If set to ``False``, the next page link will not be displayed if there's no
next page. Defaults to False.
+
+``PAGINATION_DISABLE_LINK_FOR_FIRST_PAGE``
+ if set to ``False``, the first page will have ``?page=1`` link suffix in pagination displayed, otherwise is omitted.
+ Defaults to True.