例如,我有模型,
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
,我会使用预取的ModelB
实例(ModelA
实例)获取ModelBManager
实例。
但如果我ModelC.objects.select_related('z')[0].z
,则ModelA
实例将没有预取ModelB
实例。(基本上ModelBManager
无效!)
任何人都知道如何实现这一目标?
由于