У мене Enum
клас Python такий:
from enum import Enum
class Seniority(Enum):
Intern = "Intern"
Junior_Engineer = "Junior Engineer"
Medior_Engineer = "Medior Engineer"
Senior_Engineer = "Senior Engineer"
У базі даних MYSQL у стовпці ENUM присвоєно значення "Intern", "Junior Engineer", "Medior Engineer", "Senior Engineer".
Проблема в тому, що я отримую помилку:
LookupError: "Junior Engineer" is not among the defined enum values
Ця помилка сталася, коли я викликаю запит на зразок:
UserProperty.query.filter_by(full_name='John Doe').first()
seniority
є властивістю enum в UserProperty
моделі.
class UserProperty(db.Model):
...
seniority = db.Column(db.Enum(Seniority), nullable=True)
...
Для цього класу я визначив клас схеми за допомогою marshmallow
Schema
та EnumField
з marshmallow_enum
пакету:
class UserPropertySchema(Schema):
...
seniority = EnumField(Seniority, by_value=True)
...
Що робити у цій ситуації, оскільки я не можу визначити ім'я властивості класу python з простором. Як змусити python використовувати значення визначених властивостей замість імен властивостей?