在Django中,我如何继承一个不抽象的模型,就好像它是抽象的一样,这样我才能在数据库中得到一个表?

时间:2015-10-01 04:13:40

标签: django inheritance django-models

假设我有第三方的模型并且没有标记为抽象。我想继承它,在其上添加我自己的字段,并将它们全部放在数据库中的单个表中。通常,这意味着我应该从一个抽象模型类继承,但在这种情况下我没有那么奢侈。有没有办法让一个中间步骤从父级创建一个抽象类,所以我可以从那个继承而不是?

2 个答案:

答案 0 :(得分:1)

尝试创建中间抽象模型并从第三方模型继承

    ThirdPartyModelClass(models.Model):
        #fields goes here

    AbstractThirdPartyModelClass(ThirdPartyModelClass):

       class Meta:
           abstract = True


    YourModel(AbstractThirdPartyModelClass,models.Model):
        #your fields

答案 1 :(得分:1)

此外,您可以创建一个包含其他字段的模型,这些字段将通过OneToOne关系连接到“基础”模型。使用信号可以实现逻辑,保证每个第三方模型实例都创建并连接了“扩展”模型实例。

我的意思是像推荐的扩展Django的User模型的方法:

https://docs.djangoproject.com/en/1.8/topics/auth/customizing/#extending-the-existing-user-model