Python-将枚举转换为Django models.CharField选项元组
我有这个枚举:Python-将枚举转换为Django models.CharField选项元组,python,django,enums,Python,Django,Enums,我有这个枚举: 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, Anima
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),
)
但是,有没有其他优雅的动态方法可以将枚举转换为这种嵌套元组呢?通过继承
模型创建枚举类
class AnimalModel(models.Model):
class Animal(models.TextChoices):
DOG = 'dog'
CAT = 'cat'
animal = models.CharField(choices=Animal.choices)
类动物模型(models.Model):
类动物(模型.文本选项):
狗=‘狗’
猫
动物=models.CharField(choices=animal.choices)
谢谢!它就像一个枚举?意思是我可以在外面使用:Animal.DOG
?