我确定可能有几种方法可以实现自己所要达到的目标,但是遇到了一些问题。我有一个“成员”模型,并且我也试图添加一个“从属”模型,该模型从父级(成员)继承一些字段和数据,但也有一些相同的字段,但是它们都有自己的数据。实现这一目标的最佳方法是什么? ForeignKey,OneToOne或ManyToMany,还是有可能?
示例:
class Member(models.Model):
name = models.CharField(max_length=128)
address = models.CharField(max_length=128)
age = models.DateField()
class Dependent(models.Model):
name = models.CharField(max_length=128) (different name)
address = models.CharField(max_length=128) (same address as Member)
age = models.DateField() (different age)
谢谢您的帮助。
答案 0 :(得分:1)
由于Dependent
与Member
具有相同的字段,但具有一些额外的字段,因此您可以使Dependent
和Member
都继承abstract base class(感谢@WillemVanOnsem指出来)以避免重新定义相同的字段,并且由于Member
和Dependent
具有父子关系,因此应在Member
上添加外键作为附加字段在Dependent
模型中。您还可以覆盖save
的{{1}}方法,以使其在保存时同步其Member
子代的地址。
Dependent