我有下一个枚举:
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)
之前,如何使EnumField
将其强制转换为int
希望对于您的问题,您能够使用from_str staticmethod将str转换为Enum类型
相关问题 更多 >
编程相关推荐