Как добавить логику в геттер модели, использующий наследование?
У меня есть модель для задачи
class Task(BaseTask):
class Meta:
db_table = 'task'
verbose_name_plural = 'Tasks'
def __str__(self):
return f'Task {self.id}'
def __unicode__(self):
return f'Task {self.id}'
который наследуется от BaseTask
class BaseTask(BaseModel):
class Meta:
abstract = True
task_status = models.CharField(
choices=TASK_STATUS_CHOICES, blank=True, max_length=200, default=WAITING
)
expiration_date = models.DateTimeField(blank=True, null=True, default=None)
Я хочу, чтобы task_status для Task возвращал FAILED, если текущая дата истекла. Я подумал, что могу добавить геттер к Task, например:
def get_task_status(self):
return FAILED if self.expiration_date and \
check_task_is_expired(self) else self.task_status
, но это, похоже, не работает. Как я могу добавить логику в task_status, чтобы она возвращала FAILED после истечения срока действия? Я знаю о @property, но другие модели зависят от BaseTask и Task, поэтому я не хочу менять имя поля.