2011-08-01 10 views
10

Tengo clases principales y secundarias en el modelo Django. Y quiero completar un campo en la clase para padres cuando inicie la clase para niños. O anule este campo en la clase infantil.Cómo sobrescribir un campo en la clase principal

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

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

También intente anular el método init, pero no funciona demasiado. ¿Cómo puedo lograr esto?

Respuesta

13

En herencia de clase de Python normal, se permite que una clase secundaria anule cualquier atributo de la clase principal. En Django, esto no está permitido para los atributos que son instancias de campo (al menos, no en este momento). Si una clase base tiene un campo llamado autor, no puede crear otro campo de modelo llamado autor en ninguna clase que herede de esa clase base.

No puede. Reference

Cuestiones relacionadas