SQLAlchemy: Как создать запись в базе данных с полем перечисления?

#python-3.x #enums #sqlalchemy #model #flask-sqlalchemy

Вопрос:

Я хочу определить модель sqlalchemy с полем перечисления:

 import enum  from sqlalchemy import SQLAlchemy  db.SQLAlchemy()  class Animal(enum.Enum):  dog = "Dog"  cat = "Cat"  rabbit = "Rabbit"   class Child(db.models):  __tablename__ = "child"  id = db.Column(db.Integer, primary_key=True)  animal = db.Column(db.Enum(Animal))  

Если я хочу создать Child объект, он работает.

 child = Child(id=1, animal=Animal.dog)  

Но если вы хотите получить все записи, такие как:

 childs = Child.query.all()  

Я получаю ошибку: LookupError: 'Dog' is not among the defined enum values. Enum name: animal. Possible values: dog, cat, rabbit .