我在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对象?