J'ai une Enum
classe Python comme celle-ci:
from enum import Enum
class Seniority(Enum):
Intern = "Intern"
Junior_Engineer = "Junior Engineer"
Medior_Engineer = "Medior Engineer"
Senior_Engineer = "Senior Engineer"
Dans la base de données MYSQL, la colonne d'ancienneté ENUM a les valeurs "Intern", "Junior Engineer", "Medior Engineer", "Senior Engineer".
Le problème est que j'obtiens une erreur:
LookupError: "Junior Engineer" is not among the defined enum values
Cette erreur s'est produite lorsque j'appelle une requête comme:
UserProperty.query.filter_by(full_name='John Doe').first()
seniority
est une propriété enum dans le UserProperty
modèle.
class UserProperty(db.Model):
...
seniority = db.Column(db.Enum(Seniority), nullable=True)
...
Pour cette classe, j'ai défini la classe Schema en utilisant marshmallow
Schema
et à EnumField
partir du marshmallow_enum
package:
class UserPropertySchema(Schema):
...
seniority = EnumField(Seniority, by_value=True)
...
Que faire dans cette situation, car je ne peux pas définir de nom de propriété de classe python avec de l'espace. Comment forcer python à utiliser des valeurs de propriétés définies au lieu de noms de propriétés?