例如,我有以下模型:
现在,如果我执行
但是,如果我执行
有人有任何想法如何实现这一点吗?
谢谢
class ModelBManager(models.Manager):
def get_queryset(self):
return self.super().get_queryset().select_related('y')
class ModelA(models.Model):
x = models.TextField()
class ModelB(models.Model):
y = models.ForeignKey(ModelA)
objects = ModelBManager()
class ModelC(models.Model):
z = models.ForeignKey(ModelB)
现在,如果我执行
ModelC.objects.get(id=1).z
,我将得到一个具有预取ModelA
实例的ModelB
实例(ModelBManager
工作)。但是,如果我执行
ModelC.objects.select_related('z')[0].z
,将不会有预取ModelA
实例与ModelB
实例相关联。(基本上ModelBManager
没有起作用!)有人有任何想法如何实现这一点吗?
谢谢
ModelC.objects.select_related('z__y').first().z.y
- hugobessa