Ho Enum
classe Python in questo modo:
from enum import Enum
class Seniority(Enum):
Intern = "Intern"
Junior_Engineer = "Junior Engineer"
Medior_Engineer = "Medior Engineer"
Senior_Engineer = "Senior Engineer"
Nel database MYSQL, la colonna ENUM di anzianità ha i valori "Stagista", "Ingegnere junior", "Ingegnere medior", "Ingegnere senior".
Il problema è che ottengo un errore:
LookupError: "Junior Engineer" is not among the defined enum values
Questo errore si è verificato quando chiamo query come:
UserProperty.query.filter_by(full_name='John Doe').first()
seniority
è una proprietà enum nel UserProperty
modello.
class UserProperty(db.Model):
...
seniority = db.Column(db.Enum(Seniority), nullable=True)
...
Per questa classe ho definito la classe Schema usando marshmallow
Schema
e EnumField
dal marshmallow_enum
pacchetto:
class UserPropertySchema(Schema):
...
seniority = EnumField(Seniority, by_value=True)
...
Cosa fare in questa situazione, perché non riesco a definire il nome della proprietà della classe Python con spazio. Come forzare Python a utilizzare i valori delle proprietà definite anziché i nomi delle proprietà?