Поле статуса с параметром 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)

Возможно есть еще какие-либо варианты, посоветуйте, пожалуйста.

Вернуться на верх