Eu tenho Enum
classe Python como esta:
from enum import Enum
class Seniority(Enum):
Intern = "Intern"
Junior_Engineer = "Junior Engineer"
Medior_Engineer = "Medior Engineer"
Senior_Engineer = "Senior Engineer"
No banco de dados MYSQL, a coluna ENUM de antiguidade possui os valores "Estagiário", "Engenheiro júnior", "Engenheiro médio", "Engenheiro sênior".
O problema é que eu recebo um erro:
LookupError: "Junior Engineer" is not among the defined enum values
Este erro ocorreu quando eu chamo uma consulta como:
UserProperty.query.filter_by(full_name='John Doe').first()
seniority
é uma propriedade enum no UserProperty
modelo.
class UserProperty(db.Model):
...
seniority = db.Column(db.Enum(Seniority), nullable=True)
...
Para esta classe, defini a classe Schema usando marshmallow
Schema
e EnumField
do marshmallow_enum
pacote:
class UserPropertySchema(Schema):
...
seniority = EnumField(Seniority, by_value=True)
...
O que fazer nessa situação, porque não consigo definir o nome da propriedade da classe python com espaço. Como forçar o python a usar valores de propriedades definidas em vez de nomes de propriedades?