如何将Django模型拆分为多个从第一个模型继承的模型
我的应用程序中广泛使用了Django模型。我想创建另一个继承自该模型的模型,这样我可以在整个代码中继续使用原始模型,但将一个字段移动到新模型 我有:如何将Django模型拆分为多个从第一个模型继承的模型,django,inheritance,Django,Inheritance,我的应用程序中广泛使用了Django模型。我想创建另一个继承自该模型的模型,这样我可以在整个代码中继续使用原始模型,但将一个字段移动到新模型 我有: class MyModel(models.Model): field1 =... field2=... field3=... 我想将field3移动到新型号: class MyModel2(MyModel): field3=... 然后我希望field3不为null的MyModel实例成为MyModel2实
class MyModel(models.Model):
field1 =...
field2=...
field3=...
我想将field3移动到新型号:
class MyModel2(MyModel):
field3=...
然后我希望field3不为null的MyModel实例成为MyModel2实例
代码将继续引用MyModel,但在某些特殊情况下,我将使用MyModel2。这可能吗?明智的有更好的办法吗?我考虑过创建一个基本的抽象模型,两者都可以继承,但是你不能在表单和事物中使用抽象模型
实际型号:
class Unit(models.Model):
address = models.ForeignKey(Address)
name = models.CharField(max_length=500, verbose_name="Unit Name")
payments = GenericRelation("Payment", content_type_field='content_type', object_id_field='object_pk')
permissions = GenericRelation("CustomPermission", content_type_field='content_type', object_id_field='object_pk')
association = models.ForeignKey(Association, blank=True, null=True)
def __unicode__(self):
return self.name
“关联”是我想移动到另一个模型的字段。我想你应该使用
abstract=True
我试过了,但是我无法在表单中使用我的模型。我得到了这个错误:AttributeError:type对象“MyModel”没有属性“\u default\u manager”请提供MyModel和MyModel2的真实完整代码,因为可能是您使用了一些自定义管理器或其他东西。默认情况下,模型具有默认的对象管理器
class MyModel(models.Model):
field1 =...
field2=...
field3=...
class Meta:
abstract = True
class MyModel2(MyModel):
field4=...
class AssociationBase(models.Model):
association = models.ForeignKey(Association, blank=True, null=True)
class Meta:
abstract = True
class Unit(AssociationBase):
address = models.ForeignKey(Address)
name = models.CharField(max_length=500, verbose_name="Unit Name")
payments = GenericRelation("Payment", content_type_field='content_type', object_id_field='object_pk')
permissions = GenericRelation("CustomPermission", content_type_field='content_type', object_id_field='object_pk')
def __unicode__(self):
return self.name