Mam Enum
taką klasę Python :
from enum import Enum
class Seniority(Enum):
Intern = "Intern"
Junior_Engineer = "Junior Engineer"
Medior_Engineer = "Medior Engineer"
Senior_Engineer = "Senior Engineer"
W bazie danych MYSQL kolumna ENUM starszeństwa ma wartości „Intern”, „Junior Engineer”, „Medior Engineer”, „Senior Engineer”.
Problem polega na tym, że pojawia się błąd:
LookupError: "Junior Engineer" is not among the defined enum values
Ten błąd wystąpił, gdy wywołuję zapytanie takie jak:
UserProperty.query.filter_by(full_name='John Doe').first()
seniority
jest właściwością wyliczania w UserProperty
modelu.
class UserProperty(db.Model):
...
seniority = db.Column(db.Enum(Seniority), nullable=True)
...
Dla tej klasy Mam klasy zdefiniowane przy użyciu schematu marshmallow
Schema
i EnumField
od marshmallow_enum
pakietu:
class UserPropertySchema(Schema):
...
seniority = EnumField(Seniority, by_value=True)
...
Co zrobić w tej sytuacji, ponieważ nie mogę zdefiniować nazwy właściwości klasy python za pomocą spacji. Jak zmusić pytona do używania wartości zdefiniowanych właściwości zamiast nazw właściwości?