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