小编vvo*_*ody的帖子

Django admin panel can not set valid choice when choices are enum.Enum

我使用 enum.Enum 作为现场语言的选择。

我可以创建一本书b = Book(title="Some Title", language=LanguageChoice.EN)

并通过 查询books = Book.objects.filter(languge=LanguageChoice.EN)

但是,当我想在管理面板中创建新书时,它会显示Select a valid choice. LanguageChoice.EN is not one of the available choices..

从 1.10开始, Django能够序列化 enum.Enum。那么管理面板应该如何工作?谢谢。

from enum import Enum
from django.db import models


class LanguageChoice(Enum):
    DE = "German"
    EN = "English"
    CN = "Chinese"
    ES = "Spanish"


class Book(models.Model):
    title = models.CharField(max_length=255)
    language = models.CharField(
        max_length=5,
        choices=[(tag, tag.value) for tag in LanguageChoice]  
    )
Run Code Online (Sandbox Code Playgroud)

django enums django-admin models

6
推荐指数
1
解决办法
1873
查看次数

标签 统计

django ×1

django-admin ×1

enums ×1

models ×1