RA1*_*123 21 django django-queryset django-select-related python-2.7 django-1.8
我使用外键有两个模型文章和博客相关.我想在提取文章时只选择博客名称.
articles = Articles.objects.all().select_related('blog__name')
Run Code Online (Sandbox Code Playgroud)
生成的查询显示它选择了Blog模型中的所有字段.我尝试使用select()和defer()与select_related,但两个都没有用.
articles = Articles.objects.all().select_related('blog__name').only('blog__name', 'title', 'create_time')
Run Code Online (Sandbox Code Playgroud)
上述查询导致错误:select_related中给出的字段名称无效:选项为:blog
如何生成查询以便仅选择文章字段和博客名称?
brk*_*rki 21
您可以使用annotate().
>>> a = Articles.objects.annotate(blog_name=F('blog__name')).first()
>>> a.title
>>> a.blog_name
Run Code Online (Sandbox Code Playgroud)
T. *_*tal 17
select_related应该在整个模型上使用,然后你可以更多地过滤它.这将有效:
Articles.objects.select_related('blog').only('blog__name', 'title', 'create_time')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9576 次 |
| 最近记录: |