【发布时间】:2021-01-17 15:55:36
【问题描述】:
我有下一个枚举:
class EStatus(enum.IntEnum):
NEW = 0
MODIFIED = 1
和架构:
ARGS = {
'status': EnumField(EStatus, by_value=True, required=False)
}
在 Flask 之后,我使用 webargs 声明了 GET 方法:
@use_args(ARGS, location='query')
def get(self, args: Dict[str, any]):
return []
它失败并出现错误:
{'messages': {'query': {'status': ['Invalid enum value 1']}}, 'schema': <GeneratedSchema(many=False)>, 'headers': None}
我在调试器中检查过,发现EnumField 调用了EStatus(value)。问题是我的值是 str 类型,因为它来自查询参数。
如何在调用EStatus(value)之前将其转换为int?
【问题讨论】:
标签: python flask python-3.7 flask-marshmallow webargs