Ich habe Python- Enum
Klasse wie folgt:
from enum import Enum
class Seniority(Enum):
Intern = "Intern"
Junior_Engineer = "Junior Engineer"
Medior_Engineer = "Medior Engineer"
Senior_Engineer = "Senior Engineer"
In der MYSQL-Datenbank hat die ENUM-Spalte "Dienstalter" die Werte "Intern", "Junior Engineer", "Medior Engineer", "Senior Engineer".
Das Problem ist, dass ich eine Fehlermeldung bekomme:
LookupError: "Junior Engineer" is not among the defined enum values
Dieser Fehler ist aufgetreten, wenn ich eine Abfrage wie folgt aufrufe:
UserProperty.query.filter_by(full_name='John Doe').first()
seniority
ist enum Eigenschaft im UserProperty
Modell.
class UserProperty(db.Model):
...
seniority = db.Column(db.Enum(Seniority), nullable=True)
...
Für diese Klasse habe ich die Schema-Klasse mit marshmallow
Schema
und EnumField
aus dem marshmallow_enum
Paket definiert:
class UserPropertySchema(Schema):
...
seniority = EnumField(Seniority, by_value=True)
...
Was ist in dieser Situation zu tun, da ich den Eigenschaftsnamen der Python-Klasse nicht mit Leerzeichen definieren kann? Wie kann man Python zwingen, Werte definierter Eigenschaften anstelle von Eigenschaftsnamen zu verwenden?