所以我有一个使用多表继承的模型层次结构,我想知道是否有某种ModelForm或类似的方法来创建像普通模型形式的对象,并让用户选择他们想要的子类像选择字段一样在表单中使用。
heirarchy如下:
class Base(models.Model):
field1 = models.CharField(max_length=10)
field2 = models.CharField(max_length=20)
class A(Base):
pass
class B(Base):
pass
class C(Base):
pass
我不能使用Meta抽象模型,因为我有一个需要Base的外键的类,这就是我使用多表继承的原因,并且将来子类可能有其他字段。你有什么建议我这样做吗?
目前我正在这样做的方式是使用普通表单并在该表单中包含所有常用字段以及一个选择字段,他们可以选择他们想要使用的模型类型然后我创建了一个save方法,它解释选择字段中的类型并创建该类型的对象。我不禁觉得有更好的方法可以做到这一点。