【发布时间】:2010-03-04 01:01:59
【问题描述】:
是否可以从其父模型实例化子类模型?
class Object1(models.Model):
field1a = models.CharField()
field1b = models.CharField()
feild1c = models.ForeignKey(Object4)
class Object2(Object1):
field3 = models.CharField()
class Object3(Object1):
field3 = models.CharField()
class Object4(models.Model):
field4 = models.CharField()
我想要做的是首先创建基类,然后根据一些规则实例化其中一个子类,但使用已经创建的基类。
类似:
obj4 = Object4(field4='d')
obj1 = Object1(field1a='a', field1b='b', field1c=obj4)
if somerule:
obj2 = Object2(object1_ptr=obj1, field2='2')
else:
obj3 = Object3(object1_ptr=obj1, field3='3')
我不想在 if/else 子句中重复 Object1 字段。有可能做到这一点吗?当我尝试这个时,我得到一个外键错误; 无法添加或更新子行:外键约束失败
【问题讨论】: