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 
>
> _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 (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. 
> > 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.


Reply via email to