我有这样的Python Enum
类:
from enum import Enum
class Seniority(Enum):
Intern = "Intern"
Junior_Engineer = "Junior Engineer"
Medior_Engineer = "Medior Engineer"
Senior_Engineer = "Senior Engineer"
在MYSQL数据库中,资历ENUM列的值为“实习生”,“初级工程师”,“中级工程师”,“高级工程师”。
问题是我得到一个错误:
LookupError: "Junior Engineer" is not among the defined enum values
当我像这样调用查询时,发生了此错误:
UserProperty.query.filter_by(full_name='John Doe').first()
seniority
是UserProperty
模型中的枚举属性。
class UserProperty(db.Model):
...
seniority = db.Column(db.Enum(Seniority), nullable=True)
...
对于这个类,我用定义的架构类marshmallow
Schema
和EnumField
从marshmallow_enum
包:
class UserPropertySchema(Schema):
...
seniority = EnumField(Seniority, by_value=True)
...
在这种情况下该怎么办,因为我无法使用空格定义python类属性名称。如何强制python使用已定义属性的值而不是属性名称?