> In my template, i want to be able to print "Item X of Y" where
> items are got from a QuerySet such as
> Picture.objects.filter(album='name')
> 
> Now Y is easy to get, its just the count() of the queryset,
> however i cant seem to find a solution to find X. The objects
> do have an ordering set, so they should be in the same order
> each time the query is run. I know its bad, but i tried to
> just to a pictures.index(picture) just for testing, but 
> QuerySet doesnt provide that method (sensibly). Any pointers?

It sounds like instead of passing your queryset directly to the
view/template, you might want to pass "enumerate(qs)"[1] to your
view/template.  This returns pairs of zero-based indicies that
you can use for your X.  Use the "add" filter[2] to make them
1-based indices.

Or more easily, if you're iterating over the list of items in
your view, you can use the "forloop.counter" property[3]:

   <dl>
   {% for picture in pictures %}
     <dt>Item {{ forloop.counter }} of {{ pictures.count }}</dt>
     <dd>{{ picture }}</dd>
   {% endfor %}
   </dl>

-tim

[1] http://docs.python.org/lib/built-in-funcs.html#l2h-24
[2] http://www.djangoproject.com/documentation/templates/#add
[3] http://www.djangoproject.com/documentation/templates/#for

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to