Also, I strongly recommend reading through this document for an idea of when queries do and don't hit the database: https://docs.djangoproject.com/en/1.5/topics/db/optimization/
Additionally, take a look at django-debug-toolbar, which will show you all the queries that go into returning a view, how long they take, and a bunch of other useful debugging info. It's seriously awesome, and a must-have for view optimization: https://github.com/django-debug-toolbar/django-debug-toolbar _Nik On 3/7/2013 10:35 AM, Fatih Tiryakioglu wrote: > Thank you Nicolas, > > This works: > reg = p.groupregistration_set.all().select_related('group') > name = reg[0].group.name > > This also works: > name = p.groupregistration_set.all().select_related('group')[0].group.name > > > 1) Is there any difference? Which one is beter. > 2) reg = p.groupregistration_set.all().select_related('group') > name = reg[0].group.name > does second line result in db hit??? > 3) name = > p.groupregistration_set.all().select_related('group')[0].group.name > this is 1 or 2 hit?? > > and an optional 10 points question: > 4) If I had two members of reg list, how to modify the code above? > > > Thanks again.. > > > -- > > > > > -- > > On Thursday, March 7, 2013 6:35:14 PM UTC+2, Nikolas Stevenson-Molnar > wrote: > > The biggest hit is probably going to be the reg.group call. You can > optimize that by using select_related (), which will take what is > currently 1 + (number of group registrations for the user) queries > and > turn it into 2 queries: > > reg = p.groupregistration_set.all().select_related('group') > > More on select_related: > https://docs.djangoproject.com/en/dev/ref/models/querysets/#select-related > > <https://docs.djangoproject.com/en/dev/ref/models/querysets/#select-related> > > > _Nik > > On 3/6/2013 11:18 PM, Fatih Tiryakioglu wrote: > > Hi all, > > > > Is there any shortcut (minimum db hit) for the following querysets: > > > > p = Person.objects.get(mail="[email protected] <javascript:>") > > p.password & form.password comparison and it is ok. > > > > #reversing to the person's groupregisteration, for example: > > reg = p.groupregistration_set.all() #groupregistratin model is > simply > > person (foreign key) and group (foreign key) > > > > #evaluating group of reg list. > > g = reg.group (for the every member of reg list) > > > > #and finally group name > > n = g.name <http://g.name> (for the every member of g list) > > > > Which queryset or querysets hits the db, and how can I minimize it. > > > > > > > > Thanks. > > -- > > > > > > -- > > You received this message because you are subscribed to the Google > > Groups "Django users" group. > > To unsubscribe from this group and stop receiving emails from > it, send > > an email to [email protected] <javascript:>. > > To post to this group, send email to [email protected] > <javascript:>. > > Visit this group at > http://groups.google.com/group/django-users?hl=en > <http://groups.google.com/group/django-users?hl=en>. > > For more options, visit https://groups.google.com/groups/opt_out > <https://groups.google.com/groups/opt_out>. > > > > > > -- > You received this message because you are subscribed to the Google > Groups "Django users" group. > To unsubscribe from this group and stop receiving emails from it, send > an email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/django-users?hl=en. > For more options, visit https://groups.google.com/groups/opt_out. > > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/django-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.

