Переопределение переменной из родительского класса в Django Models
У меня есть модель ChildModel
и у нее есть два родительских класса ActivatorModel
и TimeStampedModel
Ниже представлены три модели:
Два базовых класса
class ActivatorModel(models.Model):
"""
ActivatorModel
An abstract base class model that provides activate and deactivate fields.
"""
INACTIVE_STATUS = 0
ACTIVE_STATUS = 1
STATUS_CHOICES = (
(INACTIVE_STATUS, _('Inactive')),
(ACTIVE_STATUS, _('Active')),
)
status = models.IntegerField(_('status'), choices=STATUS_CHOICES, default=ACTIVE_STATUS)
activate_date = models.DateTimeField(blank=True, null=True, help_text=_('keep empty for an immediate activation'))
deactivate_date = models.DateTimeField(blank=True, null=True, help_text=_('keep empty for indefinite activation'))
objects = ActivatorModelManager()
class Meta:
ordering = ('status', '-activate_date',)
abstract = True
def save(self, *args, **kwargs):
if not self.activate_date:
self.activate_date = now()
super().save(*args, **kwargs)
class TimeStampedModel(models.Model):
"""
TimeStampedModel
An abstract base class model that provides self-managed "created" and
"modified" fields.
"""
created = CreationDateTimeField(_('created'))
modified = ModificationDateTimeField(_('modified'))
def save(self, **kwargs):
self.update_modified = kwargs.pop('update_modified', getattr(self, 'update_modified', True))
super().save(**kwargs)
class Meta:
get_latest_by = 'modified'
abstract = True
Класс, использующий вышеуказанные базовые модели
class ChildModel(ActivatorModel, TimeStampedModel):
child_id = models.CharField(
max_length=36, primary_key=True, default=uuid.uuid4
)
display_name = models.CharField(blank=True, max_length=100, null=True)
status = models.CharField(max_length=20, null=True, blank=True, default='Active')
Проблема в том, что всякий раз, когда я пытаюсь сохранить некоторое значение символьного типа в ChildModel.status, он выдает ошибку
invalid input syntax for integer.
Как правильно переопределить переменную status
и передать ей свойства, определенные в ChildModel?