On Fri, Jul 03, 2009 at 09:04:37AM -0700, Rajesh D wrote: > > On Jul 3, 9:17 am, Nikola Pavlović <n...@datasnok.org> wrote: > > Hello people, > > > > I'm writing my first Django application and would like to know what is > > considered more efficient: getting values of models' attributes in views > > or directly in templates? > > > > More precicely, say we have a Person model with name and id attributes, > > and these need to be shown on a page. > > > > Is it better for a view to "prepare" a context like this: > > > > # views.py > > # ... > > > > persons = [] > > > > for person in Person.objects.all(): > > persons.append({'id': person.id, 'name': person.name}) > > > > return render_to_response('some_template.html', persons) > > > > # some_template.html > > > > {% for p in persons %} > > Id: {{ p.id }}; Name: {{ p.name }} > > {% endfor %} > > > > or just pass a QuerySet in a context like this: > > # views.py > > # ... > > > > persons = Person.objects.all() > > return render_to_response('some_template.html', persons) > > > > and then let the template access attribute values directly? > > > > Does it make a difference in terms of performance? > > The second method avoids an extra loop and also keeps your code leaner > (less code == lesser chances of bugs). It's also the more commonly > used method. And if you are displaying just a handful of persons per > page, the performance differences should be negligible either way.
Great, that was just what I wanted to know -- a 'Django best practices' kind of question. After a couple of hours of playing with this the other day, I came to the same ("obvious") conclusion (much simpler code), but I was just concerned if there was some significant overhead to accesing attributes in the rendering phase. Thanks! -- Two can Live as Cheaply as One for Half as Long. -- Howard Kandel --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@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 -~----------~----~----~----~------~----~------~--~---