我有两个使用外键的文章和博客模型.在提取文章时,我只想 Select 博客名称.

articles = Articles.objects.all().select_related('blog__name')

生成的查询显示它 Select 了博客模型中的所有字段. 我try 对select_related仅使用()和defer(),但两者都不起作用.

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

上述查询导致错误:select_related:选项为:blog中给出的字段名无效

如何生成查询,以便只 Select 文章字段和博客名称?

推荐答案

你可以用annotate()来做这个.

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

Django相关问答推荐

Django模型ManyToManyField.Add不起作用

Htmx如何从事件中访问数据?

在/Contact-Agent/Get()返回的多个对象返回了多个属性--它返回了2

Django中每个类型/代理的最新行

通过get_form_kwargs将请求传递给Django表单未能使表单访问self.request.user.

Django 隐藏特定人员的媒体文件链接

在 Django 模板中呈现标签名称而不是整数字段

Django InlineModelAdmin:部分显示内联模型并链接到完整模型

Django:如何从模板调用视图函数?

使用 lambda 作为属性的默认值时,Django 1.7.1 Makemigrations 失败

Django:访问给定字段的 Select 元组

从 virtualenv 中,pip freeze > requirements.txt 给出了一堆垃圾!如何修剪它?

导入错误无法在windows环境下导入名称execute_manager

如何创建一个在复选框右侧显示复选框标签的 Django 表单?

在 Mac OS X 上安装支持 JPEG 的 PIL

如何使用查询参数构造 Django 反向/url?

如何将类、id、占位符属性添加到 django 模型表单中的字段

XlsxWriter 对象另存为 http 响应以在 Django 中创建下载

确保只有一个工作人员在运行多个工作人员的 pyramid 网络应用程序中启动 apscheduler 事件

通过 django 分页仅显示部分页码