django - 如何强制 select_related() 选择具有 null=True 属性的外键?

标签 django

Model1 有一个到 Model2 的外键。而 Model2 对 Model3 有一个 ForeignKey(Model3, null=True, blank=True)。默认情况下,当我在 Model1 上使用 select_related() 时,由于 null=True 而不选择 Model3。如何强制 select_related() 跟随具有 null=True 的外键?

我能想到的唯一方法是明确选择这些外键:

model1s = Model1.objects.all().select_related('model2', 'model2__model3')

这是唯一的方法吗?

最佳答案

是的,这就是您选择 null=True 的相关项目的方式。

直接来自 docs for select_related :

You can refer to any ForeignKey or OneToOneField relation in the list of fields passed to select_related. Ths includes foreign keys that have null=True (unlike the default select_related() call).



您是否有理由需要以不同的方式来执行此操作?如果没有,你已经拥有它了。

关于django - 如何强制 select_related() 选择具有 null=True 属性的外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2380130/

相关文章:

Django REST Serializer - 部分更新仍然更新完整记录

python - 在 django admin 的 list_editable 中实现一对多编辑的直接方法是什么?

python - 如何通过将新产品添加到 ManyToMany 字段来动态添加字段

python - Django 表添加 LinkColumn/NoReverseMatch 错误

python - Django - 系统在哪里确定 "form"是身份验证表单?

python - 向 Django Admin 添加权限

django - 如何在 Django 中注销非事件用户?

python - 使用 EmailMultiAlternatives 向 django 发送电子邮件

django_select2 在渲染 : name 'patterns' is not defined 时捕获到 NameError

python - 如何在 intellij python-project 中为 Django 设置源文件夹? (Python 插件)