2010-01-13 2 views
3

Сценарий:Как указать значение по умолчанию для атрибута базового класса из подкласса в Django?

class BaseClass(models.Model): 
    base_field = models.CharField(max_length=15, default=None) 

class SubClass(BaseClass): 
    # TODO set default value if base_field's value is None 
    ... 

т.е.. Мне нужно иметь возможность загружать прибор в базу данных, предоставляя значение по умолчанию, только если base_field - None. Любая помощь очень ценится! (примечание: BaseClass не является абстрактным)

ответ

3

Вы можете переопределить метод save, проверьте, установлено ли base_field, в противном случае установите его значение по умолчанию.

+0

Да, это путь, который я не хотел брать, но он работает так, а. я надеялся на что-то большее, чем конструктор __new__ или __init__, но я не совсем понимаю, как они работают, поэтому я думаю, что поеду с вашим предложением. Спасибо! – mkelley33