[Django]-Selecting specific fields using select_related in Django

27👍

✅

You can use annotate() for this.

>>> a = Articles.objects.annotate(blog_name=F('blog__name')).first()
>>> a.title
>>> a.blog_name

79👍

select_related should be use on the whole model, and then you can filter it more. This will work:

Articles.objects.select_related('blog').only('blog__name', 'title', 'create_time')

1👍

It can be done by adding one more field into only section, it’s blog (I assume it helps Django to keep relation between objects (Article & Blog):

articles = Articles.objects.select_related(
    'blog',
).only(
    'blog',
    'blog__name',
    'title',
    'create_time',
)

Tested on Django==2.2.19

Leave a comment