【发布时间】:2018-08-27 10:03:03
【问题描述】:
例如,我有模型,
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 不起作用!)
有人知道我该如何实现吗?
谢谢
【问题讨论】:
标签: django django-models django-rest-framework django-queryset django-managers