ฉันมี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 อาวุโสมีค่า "ฝึกงาน", "วิศวกรจูเนียร์", "วิศวกร Medior", "วิศวกรอาวุโส"
ปัญหาคือฉันได้รับข้อผิดพลาด:
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)
...
สำหรับคลาสนี้ฉันได้กำหนดคลาส Schema โดยใช้marshmallow
Schema
และEnumField
จากmarshmallow_enum
แพ็คเกจ:
class UserPropertySchema(Schema):
...
seniority = EnumField(Seniority, by_value=True)
...
สิ่งที่ต้องทำในสถานการณ์นี้เพราะฉันไม่สามารถกำหนดชื่อคุณสมบัติคลาสหลามด้วยช่องว่างได้ จะบังคับให้ python ใช้ค่าของคุณสมบัติที่กำหนดแทนชื่อคุณสมบัติได้อย่างไร