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