Model1有一个到Model2的ForeignKey。 Model2对Model3有一个ForeignKey(Model3,null = True,blank = True)。默认情况下,当我在Model1上使用select_related()时,由于null = True,因此未选择Model3。如何强制select_related()跟随具有null = True?
的foreign_key我能想到的唯一方法是明确选择这些外键:
model1s = Model1.objects.all().select_related('model2', 'model2__model3')
这是唯一的方法吗?
答案 0 :(得分:14)
是的,这就是你选择null = True的相关项目的方式。
您可以在传递给select_related的字段列表中引用任何ForeignKey或OneToOneField关系。这包括具有null = True的外键(与默认的select_related()调用不同)。
您是否有理由需要采用不同的方式来执行此操作?如果没有,你已经把它弄好了。