Поле статуса с параметром editable = False
Мне необходимо грамотно описать поле статуса, которое должно быть неизменяемым, но должно отображаться в админ-панели в списке объектов(list_display).
Зачастую для поля статуса делают choices, но так-как оно будет неизменяемым, я не вижу в этом смысла.
Вариант 1:
# enum
class ModelStatus(IntEnum):
initial = 1
processing = 2
failed = 3
success = 4
class SomeModel(models.Model):
status = models.PositiveSmallIntegerField(default=ModelStatus.initial.value, editable=False)
@property
def status_display(self):
"""Для использования с целью отображения в админ-панели"""
return ModelStatus(self.status).name
Вариант 2:
# strings
STATUS_INITIAL = "INITIAL"
STATUS_PROCESSING = "PROCESSING"
STATUS_FAILED = "FAILED"
STATUS_SUCCESS = "SUCCESS"
class SomeModel(models.Model):
status = models.CharField(max_lenght=10, default=STATUS_INITIAL, editable=False)
Возможно есть еще какие-либо варианты, посоветуйте, пожалуйста.