Выбор Django в Admin при использовании Enum - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть модель, в которой я использую Enum для выбора:

class Agreement(models.Model):
    class Category(enum.Enum):
        EULA = 0
        PROVIDER = 1

    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    category = models.IntegerField(
        choices=[(choice.name, choice.value)
                 for choice in Category])
    title = models.CharField(max_length=128)
    content = models.TextField()

Я регистрирую ее, используя простую регистрацию сайта администратора:

admin.site.register(Agreement)

Когда сайт администратора отображает объект, который он не делаетне позволите мне сохранить это?У кого-нибудь была похожая проблема?

enter image description here

1 Ответ

0 голосов
/ 17 сентября 2018

Согласно документации :

Первый элемент в каждом кортеже - это фактическое значение, устанавливаемое в модели, а второй элемент - понятное для человека имя..

name и value должны быть наоборот:

category = models.IntegerField(
    choices=[(choice.value, choice.name)
             for choice in Category])

, потому что category является целочисленным полем, а name возвращаетстрока.

...