Personally, I depend on this behaviour, but it's only because I'm aware of 
it. Others would be too though, so we can't just make that change (not that 
you're suggesting that approach).

One approach I think could be good would be:

Book.objects.select_related('author__hometown').defer("author").get(id=4)

Deferring a relation would defer all fields except the key field (which is 
necessary for lazy loading). What do you think?


On Tuesday, 12 February 2019 03:48:00 UTC+11, riccardo.magliocchetti wrote:
>
> Hello Collin, 
>
> Il 11/02/19 17:35, Collin Anderson ha scritto: 
> > So would you "defer" the other columns like "only()"? 
>
> Yeah, something like that 
>
> > If nothing else, you could try using .annotate(F('author__hometown')) 
> (not 
> > sure if that works) or .values('author__hometown') to just get the 
> values 
> > you need. 
>
> Sure but the query would be everything but readable :) 
> The point of a parameter to select_related would be to avoid to type 
> explicitly 
> fields not in select_related and the one in select_related twice. 
>
> > On Mon, Feb 11, 2019 at 5:50 AM Riccardo Magliocchetti < 
> > riccardo.ma...@gmail.com <javascript:>> wrote: 
> > 
> >> Hello, 
> >> 
> >> I'm debugging views leaking lots of memory in django 1.11. It looks 
> like 
> >> there 
> >> is some connections with my usage of select_related(). But that's mail 
> is 
> >> not 
> >> about that, not sure about my findings yet :) 
> >> 
> >> So I have looked again at the select_related documentation here: 
> >> 
> https://docs.djangoproject.com/en/2.1/ref/models/querysets/#select-related 
> >> 
> >> and found this: 
> >> Book.objects.select_related('author__hometown').get(id=4) will cache 
> the 
> >> related 
> >> Person and the related City 
> >> 
> >> Up until now i thought that only the related model i've specified would 
> >> get 
> >> added to selected columns e.g. only the City because of hometown. But 
> it 
> >> looks 
> >> that's not how it is :) 
> >> 
> >> Would it make sense to add a parameter to change select_related 
> behaviour 
> >> to 
> >> include only the columns of the related models specified? That could 
> save 
> >> quite 
> >> a lot of bandwitdh for some use cases. 
> >> 
> >> What do you think? 
> >> 
> >> Thanks 
> >> 
> >> -- 
> >> Riccardo Magliocchetti 
> >> @rmistaken 
> >> 
> >> http://menodizero.it 
> >> 
> >> -- 
> >> You received this message because you are subscribed to the Google 
> Groups 
> >> "Django developers  (Contributions to Django itself)" group. 
> >> To unsubscribe from this group and stop receiving emails from it, send 
> an 
> >> email to django-develop...@googlegroups.com <javascript:>. 
> >> To post to this group, send email to django-d...@googlegroups.com 
> <javascript:>. 
> >> Visit this group at https://groups.google.com/group/django-developers. 
> >> To view this discussion on the web visit 
> >> 
> https://groups.google.com/d/msgid/django-developers/a42050d3-25a2-2f47-c841-918d7d085757%40gmail.com
>  
> >> . 
> >> For more options, visit https://groups.google.com/d/optout. 
> >> 
> > 
>
>
> -- 
> Riccardo Magliocchetti 
> @rmistaken 
>
> http://menodizero.it 
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers  (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-developers+unsubscr...@googlegroups.com.
To post to this group, send email to django-developers@googlegroups.com.
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-developers/8db815a1-91a8-4dac-bf60-eeca96a0d71e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to