Подтвердить что ты не робот

Методы класса модели Django для предопределенных значений

Я работаю над некоторым Django-кодом, который имеет такую ​​модель:

class Status(models.Model):
    code = models.IntegerField()
    text = models.CharField(maxlength=255)

Существует около 10 предварительно определенных кодов/текстовых пар, которые хранятся в базе данных. Рассеянный вокруг кода я вижу код следующим образом:

status = Status.objects.get(code=0) # successful
status = Status.objects.get(code=1) # failed

Я бы предпочел иметь метод для каждого, чтобы код выглядел примерно так:

status = Status.successful()
status = Status.failed()
etc...

Возможно ли это? Я посмотрел на Менеджер, но я действительно не нашел способ. Пришло время действительно RTFM?

В Java это был бы статический метод, и в Ruby вы бы просто определили метод для себя, но это не так просто в Python, не так ли?

4b9b3361

Ответ 1

Возможно, вы должны реализовать это, указав собственный менеджер для своего класса и добавив два менеджера в этот менеджер (который, я считаю, является предпочтительным способом добавления функциональности на уровне таблиц для любой модели). Однако другой способ сделать это - это бросить в свой класс