我想知道 - 是否可以继承这样的课程?
例如,我有2个抽象类:
class Book(models.Model):
name = models.TextField()
class Meta:
abstract = True
class Page(models.Model)
num = models.IntegerField()
book = models.ForeignKey('Book')
class Meta:
abstract = True
所以 - 我想为这两个创建继承类,让它们成为 BigBook 和 BigBookPage
但是,如果我这样做,python告诉我,我的FK字段不能与抽象模型有关系。而且我找不到在继承模型中重新定义FK的方法。所以我必须只在继承的模型中创建外键 - 而不是父母?
如果我有相同的模型方法,使用外键,在父模型中定义...我必须将它们移动到每个孩子 - 所以他们可以使用他们的外键?
答案 0 :(得分:1)
听起来你想将Book标记为proxy = True。见proxy models。它将创建一个书模型,但也让你有其他继承它的模型,让你自定义子类的功能。
class Book(models.Model):
class Meta:
proxy = True
class BigBook(Book):
# BigBook properties go here.