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

Django 如何强制select_related()选择具有null=True属性的外键?,django,Django,Model1具有Model2的外键。Model2对Model3有一个ForeignKey(Model3,null=True,blank=True)。默认情况下,当我在Model1上使用select_related()时,Model3不会被选中,因为null=True。如何强制select_related()跟随null=True的外部_键 我能想到的唯一方法是显式选择这些外键: model1s = Model1.objects.all().select_related('model2', 'mo

Model1具有Model2的外键。Model2对Model3有一个ForeignKey(Model3,null=True,blank=True)。默认情况下,当我在Model1上使用select_related()时,Model3不会被选中,因为null=True。如何强制select_related()跟随null=True的外部_键

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

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

这是唯一的方法吗?

是的,这是选择null=True的相关项目的方法

直截了当地说:

您可以在传递给select_related的字段列表中引用任何ForeignKey或OneToOneField关系。Ths包括null=True的外键(与默认的select_related()调用不同)


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

我有许多ForeignKey字段设置为null=True。我不想把它们都列出来。但我想我必须这么做。你又对了。它看起来确实需要很多打字,但从技术上讲,这是一个有点拐弯抹角的用例。总比根本无法选择与您相关的内容要好。如果你有不同的想法,请添加你自己的答案。花了很长时间来寻找这个。。谢谢你的提问和回答!