Fixed documentation to include the step about adding the request context processor.
[django-pagination.git] / docs / index.html
1 <?xml version="1.0" encoding="utf-8" ?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4 <head>
5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
7 <title>How to use django-pagination</title>
8 <style type="text/css">
9
10 /*
11 :Author: David Goodger
12 :Contact: goodger@users.sourceforge.net
13 :Date: $Date$
14 :Revision: $Revision$
15 :Copyright: This stylesheet has been placed in the public domain.
16
17 Default cascading style sheet for the HTML output of Docutils.
18
19 See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
20 customize this style sheet.
21 */
22
23 /* used to remove borders from tables and images */
24 .borderless, table.borderless td, table.borderless th {
25   border: 0 }
26
27 table.borderless td, table.borderless th {
28   /* Override padding for "table.docutils td" with "! important".
29      The right padding separates the table cells. */
30   padding: 0 0.5em 0 0 ! important }
31
32 .first {
33   /* Override more specific margin styles with "! important". */
34   margin-top: 0 ! important }
35
36 .last, .with-subtitle {
37   margin-bottom: 0 ! important }
38
39 .hidden {
40   display: none }
41
42 a.toc-backref {
43   text-decoration: none ;
44   color: black }
45
46 blockquote.epigraph {
47   margin: 2em 5em ; }
48
49 dl.docutils dd {
50   margin-bottom: 0.5em }
51
52 /* Uncomment (and remove this text!) to get bold-faced definition list terms
53 dl.docutils dt {
54   font-weight: bold }
55 */
56
57 div.abstract {
58   margin: 2em 5em }
59
60 div.abstract p.topic-title {
61   font-weight: bold ;
62   text-align: center }
63
64 div.admonition, div.attention, div.caution, div.danger, div.error,
65 div.hint, div.important, div.note, div.tip, div.warning {
66   margin: 2em ;
67   border: medium outset ;
68   padding: 1em }
69
70 div.admonition p.admonition-title, div.hint p.admonition-title,
71 div.important p.admonition-title, div.note p.admonition-title,
72 div.tip p.admonition-title {
73   font-weight: bold ;
74   font-family: sans-serif }
75
76 div.attention p.admonition-title, div.caution p.admonition-title,
77 div.danger p.admonition-title, div.error p.admonition-title,
78 div.warning p.admonition-title {
79   color: red ;
80   font-weight: bold ;
81   font-family: sans-serif }
82
83 /* Uncomment (and remove this text!) to get reduced vertical space in
84    compound paragraphs.
85 div.compound .compound-first, div.compound .compound-middle {
86   margin-bottom: 0.5em }
87
88 div.compound .compound-last, div.compound .compound-middle {
89   margin-top: 0.5em }
90 */
91
92 div.dedication {
93   margin: 2em 5em ;
94   text-align: center ;
95   font-style: italic }
96
97 div.dedication p.topic-title {
98   font-weight: bold ;
99   font-style: normal }
100
101 div.figure {
102   margin-left: 2em ;
103   margin-right: 2em }
104
105 div.footer, div.header {
106   clear: both;
107   font-size: smaller }
108
109 div.line-block {
110   display: block ;
111   margin-top: 1em ;
112   margin-bottom: 1em }
113
114 div.line-block div.line-block {
115   margin-top: 0 ;
116   margin-bottom: 0 ;
117   margin-left: 1.5em }
118
119 div.sidebar {
120   margin-left: 1em ;
121   border: medium outset ;
122   padding: 1em ;
123   background-color: #ffffee ;
124   width: 40% ;
125   float: right ;
126   clear: right }
127
128 div.sidebar p.rubric {
129   font-family: sans-serif ;
130   font-size: medium }
131
132 div.system-messages {
133   margin: 5em }
134
135 div.system-messages h1 {
136   color: red }
137
138 div.system-message {
139   border: medium outset ;
140   padding: 1em }
141
142 div.system-message p.system-message-title {
143   color: red ;
144   font-weight: bold }
145
146 div.topic {
147   margin: 2em }
148
149 h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
150 h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
151   margin-top: 0.4em }
152
153 h1.title {
154   text-align: center }
155
156 h2.subtitle {
157   text-align: center }
158
159 hr.docutils {
160   width: 75% }
161
162 img.align-left {
163   clear: left }
164
165 img.align-right {
166   clear: right }
167
168 ol.simple, ul.simple {
169   margin-bottom: 1em }
170
171 ol.arabic {
172   list-style: decimal }
173
174 ol.loweralpha {
175   list-style: lower-alpha }
176
177 ol.upperalpha {
178   list-style: upper-alpha }
179
180 ol.lowerroman {
181   list-style: lower-roman }
182
183 ol.upperroman {
184   list-style: upper-roman }
185
186 p.attribution {
187   text-align: right ;
188   margin-left: 50% }
189
190 p.caption {
191   font-style: italic }
192
193 p.credits {
194   font-style: italic ;
195   font-size: smaller }
196
197 p.label {
198   white-space: nowrap }
199
200 p.rubric {
201   font-weight: bold ;
202   font-size: larger ;
203   color: maroon ;
204   text-align: center }
205
206 p.sidebar-title {
207   font-family: sans-serif ;
208   font-weight: bold ;
209   font-size: larger }
210
211 p.sidebar-subtitle {
212   font-family: sans-serif ;
213   font-weight: bold }
214
215 p.topic-title {
216   font-weight: bold }
217
218 pre.address {
219   margin-bottom: 0 ;
220   margin-top: 0 ;
221   font-family: serif ;
222   font-size: 100% }
223
224 pre.literal-block, pre.doctest-block {
225   margin-left: 2em ;
226   margin-right: 2em ;
227   background-color: #eeeeee }
228
229 span.classifier {
230   font-family: sans-serif ;
231   font-style: oblique }
232
233 span.classifier-delimiter {
234   font-family: sans-serif ;
235   font-weight: bold }
236
237 span.interpreted {
238   font-family: sans-serif }
239
240 span.option {
241   white-space: nowrap }
242
243 span.pre {
244   white-space: pre }
245
246 span.problematic {
247   color: red }
248
249 span.section-subtitle {
250   /* font-size relative to parent (h1..h6 element) */
251   font-size: 80% }
252
253 table.citation {
254   border-left: solid 1px gray;
255   margin-left: 1px }
256
257 table.docinfo {
258   margin: 2em 4em }
259
260 table.docutils {
261   margin-top: 0.5em ;
262   margin-bottom: 0.5em }
263
264 table.footnote {
265   border-left: solid 1px black;
266   margin-left: 1px }
267
268 table.docutils td, table.docutils th,
269 table.docinfo td, table.docinfo th {
270   padding-left: 0.5em ;
271   padding-right: 0.5em ;
272   vertical-align: top }
273
274 table.docutils th.field-name, table.docinfo th.docinfo-name {
275   font-weight: bold ;
276   text-align: left ;
277   white-space: nowrap ;
278   padding-left: 0 }
279
280 h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
281 h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
282   font-size: 100% }
283
284 tt.docutils {
285   background-color: #eeeeee }
286
287 ul.auto-toc {
288   list-style-type: none }
289
290 </style>
291 </head>
292 <body>
293 <div class="document" id="how-to-use-django-pagination">
294 <h1 class="title">How to use django-pagination</h1>
295 <p><tt class="docutils literal"><span class="pre">django-pagination</span></tt> allows for easy Digg-style pagination without modifying
296 your views.</p>
297 <p>There are really 5 steps to setting it up with your projects (not including
298 installation, which is covered in INSTALL.txt in this same directory.)</p>
299 <ol class="arabic">
300 <li><p class="first">List this application in the <tt class="docutils literal"><span class="pre">INSTALLED_APPS</span></tt> portion of your settings
301 file.  Your settings file might look something like:</p>
302 <pre class="literal-block">
303 INSTALLED_APPS = (
304     # ...
305     'pagination',
306 )
307 </pre>
308 </li>
309 <li><p class="first">Install the pagination middleware.  Your settings file might look something
310 like:</p>
311 <pre class="literal-block">
312 MIDDLEWARE_CLASSES = (
313     # ...
314     'pagination.middleware.PaginationMiddleware',
315 )
316 </pre>
317 </li>
318 <li><p class="first">Add this line at the top of your template to load the pagination tags:</p>
319 <blockquote>
320 <p>{% load pagination_tags %}</p>
321 </blockquote>
322 </li>
323 <li><p class="first">Decide on a variable that you would like to paginate, and use the
324 autopaginate tag on that variable before iterating over it.  This could
325 take one of two forms (using the canonical <tt class="docutils literal"><span class="pre">object_list</span></tt> as an example
326 variable):</p>
327 <blockquote>
328 <p>{% autopaginate object_list %}</p>
329 </blockquote>
330 <p>This assumes that you would like to have the default 20 results per page.
331 If you would like to specify your own amount of results per page, you can
332 specify that like so:</p>
333 <blockquote>
334 <p>{% autopaginate object_list 10 %}</p>
335 </blockquote>
336 <p>Note that this replaces <tt class="docutils literal"><span class="pre">object_list</span></tt> with the list for the current page, so
337 you can iterate over the <tt class="docutils literal"><span class="pre">object_list</span></tt> like you normally would.</p>
338 </li>
339 <li><p class="first">Now you want to display the current page and the available pages, so
340 somewhere after having used autopaginate, use the paginate inclusion tag:</p>
341 <blockquote>
342 <p>{% paginate %}</p>
343 </blockquote>
344 <p>This does not take any arguments, but does assume that you have already
345 called autopaginate, so make sure to do so first.</p>
346 </li>
347 </ol>
348 <p>That's it!  You have now paginated <tt class="docutils literal"><span class="pre">object_list</span></tt> and given users of the site
349 a way to navigate between the different pages--all without touching your views.</p>
350 </div>
351 </body>
352 </html>