Scratch that. I just learned that this can be done in a much simpler way:
I recently had to write a template for a paginated view which displayed a serial number for each
object
in the object_list
. I normally use forloop.counter
for general purpose serial numbers. However this did not work with paginated views as the counter gets reset in each page. This caused the serial numbers to go from 1 to #-of-results-in-the-page and then repeat. I wrote a filter to tackle this problem.
The code (add to your filters file under ./templatetags/):
And the template snippet:
The
adjust_for_pagination
filter adjusts the value of forloop.counter
based on the current page. Page
and is_paginated
variables are expected to be present in the context. These should respectively denote the current page number (1 based) and if the results are paginated. RESULTS_PER_PAGE
is currently taken from the settings file. I couldn't think of a way to pass this value also from the template.
No comments:
Post a Comment