Python - 将枚举转换为 Django 模型。CharField 选择元组 [重复]
Posted
技术标签:
【中文标题】Python - 将枚举转换为 Django 模型。CharField 选择元组 [重复]【英文标题】:Python - Covert enum to Django models.CharField choices tuple [duplicate] 【发布时间】:2020-07-07 05:05:22 【问题描述】:我有这个枚举:
class Animal(Enum):
DOG = 'dog'
CAT = 'cat'
在 Django 模型中我有这个:
possible_animals = (
("DOG", "dog"),
("cat", "cat"),
)
animal = models.CharField(choices=possible_animals, ...)
我知道我可以像这样使用枚举:
possible_animals = (
(Animal.DOG.name, Animal.DOG.value),
(Animal.CAT.name, Animal.CAT.value),
)
但是还有其他优雅的动态方式可以将枚举转换为这种嵌套元组吗?
【问题讨论】:
【参考方案1】:通过继承 models.TextChoices
来创建枚举类
class AnimalModel(models.Model):
class Animal(models.TextChoices):
DOG = 'dog'
CAT = 'cat'
animal = models.CharField(choices=Animal.choices)
【讨论】:
谢谢!它就像一个枚举?意思是我可以在外面使用它:Animal.DOG
?以上是关于Python - 将枚举转换为 Django 模型。CharField 选择元组 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Django/Python:如何将整数转换为等效的枚举字符串? [复制]