I would move the logic into a custom filter. This keeps it out of the
view and radically simplifies the template logic. It is easy to create
a filter that takes an argument, so the fact that you have two
inputs (page_number and current_page) is no problem.
On Jan 9, 11:02 am, "Prof. William Battersea"
<[EMAIL PROTECTED]> wrote:
> Hello,
>
> On nearly every page of the website I'm creating, I have a list of recent
> articles in the sidebar that works as a complete archive. You can sort them
> by newest/oldest, and page through the entire archive. The template code for
> the pagination looks like this
>
> {% for page_number in page_list %}
>
> {% ifnotequal page_number current_page %}
>
> <a class="deselected" href="?p={{ page_number
>
> }}&sort={{sort_order}}">{{page_number}}</a>
>
> {% else %}
>
> {{ page_number }}
>
> {% endifnotequal %}
>
> {% endfor %}
>
> As a result, as soon as you sort, or page through, the url gets a
> querystring appended to it. I'd like to keep them as clean as possible, so I
> was thinking of only adding the sort_order to the pagination hrefs if it's
> not the default. Something like:
>
> {% for page_number in page_list %}
>
> {% ifnotequal page_number current_page %}
>
> <a class="deselected" href="?p={{ page_number }}
>
> {% ifnotequal sort_order default_sort }}
> &sort={{sort_order}}
> {% endifnotequal %}
>
> ">{{page_number}}</a>
>
> {% else %}
>
> {{ page_number }}
>
> {% endifnotequal %}
>
> {% endfor %}
>
> But I'm unhappy that there's so much logic in the template, and it's getting
> hard to read. I understand that maybe every page shouldn't have this list
> with ordering and pagination, but it's something I'm experimenting with, and
> I'd like to get it working in the best order I can.
>
> I thought about doing most of the processing in the view and outputting the
> pagination as a single string, but then I've moved at least a small bit of
> HTML into my view. I feel like there should be a cleaner way. Am I doing
> something wrong, or is this an acceptable level of logic in the template?
>
> I hope that's clear.
> Thanks
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---