如何将Django模型拆分为多个从第一个模型继承的模型

如何将Django模型拆分为多个从第一个模型继承的模型,django,inheritance,Django,Inheritance,我的应用程序中广泛使用了Django模型。我想创建另一个继承自该模型的模型,这样我可以在整个代码中继续使用原始模型,但将一个字段移动到新模型 我有: class MyModel(models.Model): field1 =... field2=... field3=... 我想将field3移动到新型号: class MyModel2(MyModel): field3=... 然后我希望field3不为null的MyModel实例成为MyModel2实

我的应用程序中广泛使用了Django模型。我想创建另一个继承自该模型的模型,这样我可以在整个代码中继续使用原始模型,但将一个字段移动到新模型

我有:

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