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