1

我在 django 中对两个模型使用多态,其中一个与另一个模型具有一对一的关系。

from polymorphic.models import PolymorphicModel

class Base(PolymorphicModel):
    name = models.CharField(max_length=25)

class Engine(models.Model):
    name = models.CharField(max_length=25)

class A(Base):
    type = models.CharField(max_length=25)

class B(Base):
    name = models.CharField(max_length=25)
    engine = models.OneToOneField(Engine)

class Host(Base):
    base_type = models.ForeignKey(Base)

现在,我想对 Host 类使用 prefetch_related

host = Host.objects.all().prefetch_related('base_type__engine__name')

但是,它对模型 B 中的某些对象无效。

当我获取 A 对象时,有什么方法可以预取 Engine 对象吗?

4

0 回答 0