Как в наследнике переопределить свойство?

Может кто нибудь объяснить как происходит разрешение всего этого?
Почему в методе потомка сохранение работает но в свойстве content остается значение родителя?
И можно ли как-то переопределить свойство?
from django.db import models

class Father(models.Model):
    COST = 100
    content = models.TextField(max_length=COST)

    class Meta:
        abstract = True

    def save(self, *args, **kwargs):
        if self.COST > 200:
            self.action = True
        super(Father, self).save(*args, **kwargs)

class Children(Father):
    COST = 500
    action = models.BooleanField(default=False)
  • Вопрос задан
  • 411 просмотров
Пригласить эксперта
Ответы на вопрос 2
@bromzh
Drugs-driven development
попробуй объявить поле action в родительском классе:
class Father(models.Model):
    COST = 100
    content = models.TextField(max_length=COST)
    action = models.BooleanField(default=False)

    class Meta:
        abstract = True

    def save(self, *args, **kwargs):
        if self.COST > 200:
            self.action = True
        super(Father, self).save(*args, **kwargs)

class Children(Father):
    COST = 500
Ответ написан
Комментировать
Попробуй:
class Children(Father):
    COST = 500
    action = models.BooleanField(default=False)

    class Meta:
        content = models.TextField(max_length=COST)

или
class Father(models.Model):
    COST = 100
    content = models.TextField(max_length=self.COST)
...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы