在MongoEngine中存储枚举列表时,从数据库读取时不会返回枚举

2024-05-16 23:49:08 发布

您现在位置:Python中文网/ 问答频道 /正文

使用EnumField的ListField时,从MongoEngne返回的对象中的数据不会转换回Enums。例如:

class DaysOfTheWeek(Enum):
   Mon = 1
   Tue = 2
   # etc ... 

class C(db.Document):
    days = db.ListField(db.EnumField(DaysOfTheWeek))

c1 = C(days=[DaysOfTheWeek.Mon])
assert c1.days ==  [DaysOfTheWeek.Mon]   # OK 
c1.save()
c2 = C.objects.first()
assert c2.days == [1]                    # OK 
assert c2.days == [DaysOfTheWeek.Mon]    # Fails

这是预期的行为吗?我是否错误地使用了MongoEngine

我正在使用MongoEngine 0.22.1


Tags: 数据对象dbokassertdaysclassmongoengine