如何重写父类中的字段

13 投票
1 回答
6680 浏览
提问于 2025-04-16 22:39

我在Django模型中有父类和子类。我想在初始化子类的时候填充父类中的一个字段,或者在子类中覆盖这个字段。

    class Parent(models.Model):
        type = models.CharField()

    class Child(Parent):
        type = models.CharField()  //Doesn't work

我也尝试过覆盖初始化方法,但也没有成功。请问我该怎么做呢?

1 个回答

16

在普通的Python类继承中,子类可以随意覆盖父类的任何属性。但是在Django中,对于那些是字段实例的属性,这种做法是不被允许的(至少目前是这样)。如果一个基类有一个叫做author的字段,那么在任何继承自这个基类的类中,你都不能再创建一个叫做author的模型字段。

你是不能这样做的。参考链接

撰写回答