On Oct 19, 4:43 pm, Tom Evans <tevans...@googlemail.com> wrote: > On Tue, Oct 19, 2010 at 4:16 PM, Daniel Roseman <dan...@roseman.org.uk> wrote: > > The solution here is to evaluate the queryset in your view first, > > before passing it to the template. You can do this by simply calling > > list() on it - eg instead of defining your context as {'actor_list': > > actor_list}, do {'actor_list': list(actor_list)}. Bear in mind though, > > if you're doing things like pagination, this will end up being less > > efficient, as it will evaluate the *whole* queryset rather than just > > the elements you need for the page you're on. > > I'm 100% sure Daniel is aware of this, but it is good to explicitly > point it out: this will also require more memory, as instead of > iterating through the queryset and producing one object at a time, it > has to create and store a list of objects. > > Cheers > > Tom
Well, to a certain extent. When iterating through a queryset, Django populates it in chunks of 100 items. So if the actor_list set is less than 100 - which is a pretty good bet seeing as it's not paginated - there'll be very little difference in terms of memory consumption. -- DR. -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.