I really appreciate your help Dan, but I don't think the answer to my question is in the docs. I did my due diligence there before asking.
Regarding your suggestion, from the docs: "It's an error to use both a list of
fields and the depth parameter in the same select_related() call, since they
are conflicting options."
Anyone else have insight? Otherwise I guess I'll have to start reading
through the code.
Thanks,
Michael
On Thursday 10 June 2010 05:01:52 pm Dan Harris wrote:
> Michael,
>
> I believe the case of query.select_related(person__place) will "only"
> follow the place foreign key. This means that if you had 5 FK's in
> your person models, that only a single FK would be followed instead of
> all 5 for optimization. Upon further looking there is also a "depth"
> argument you can pass to select related to specify how far you want it
> to go. For example:
>
> query.select_related(depth=5) # This will follow all FK's 5 levels
> deep
>
> query.select_ralted('person__place', depth=5) # This will follow only
> the place FK 5 levels deep
>
> That is how I read the docs, it may not be correct :)
>
> Cheers,
>
> Dan Harris
> [email protected]
>
> On Jun 10, 4:54 pm, Michael Hrivnak <[email protected]> wrote:
> > I read that myself. I asked the question because it goes on to state
> > that you can specify down-stream models like this:
> >
> > query.select_related(person__place)
> >
> > If it follows all relationships as far as possible, even when specific
> > relationships are requested, why would that syntax ever be necessary? We
> > could just specify "people", and it would follow the "place" relationship
> > automatically. Is it only to specifically prevent it from following
> > other relationships on the "person" model?
> >
> > The docs seem to be ambiguous on this point.
> >
> > Thanks,
> > Michael
> >
> > On Thursday 10 June 2010 03:37:59 pm Dan Harris wrote:
> > > According to the select_related() documentation at:
> > >http://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db....
> > > .QuerySet.select_related
> > >
> > > it looks like select related "follows foreign keys as far as
> > > possible". In the documentation example it shows select_related
> > > following a foreign keys with a depth of two.
> > >
> > > Hope this helps,
> > >
> > > Dan Harris
> > > [email protected]
> > >
> > > On Jun 10, 3:19 pm, Michael Hrivnak <[email protected]> wrote:
> > > > If I use select_related() on a queryset and specify some attribute
> > > > names, will it follow those relationships as far as possible, or does
> > > > that imply "depth=1"?
> > > >
> > > > Thanks,
> > > > Michael
> > > >
> > > > signature.asc
> > > > < 1KViewDownload
> >
> > signature.asc
> > < 1KViewDownload
>
signature.asc
Description: This is a digitally signed message part.

