我正试图为Marshamallow的模式中的类字段添加一条自定义的错误消息。字段表示如下:
phone_number = fields.String(validate=Length(max=20),
error_messages={'invalid': 'Phone number must be a string shorter than'
'20 letters.'})
我期望在将请求数据加载到模式之后,我会得到错误";电话号码必须是一个短于20个字母的字符串&";,然而,我仍然收到默认消息";比最大长度20长;。加载请求数据的代码为:
try:
request_data = EditInvestorSchema().load(request.json)
except ValidationError as error:
return get_response(400, list(error.messages.values())[0])
有人能解释一下可能发生的事情吗?
如果在验证器中定义消息,它应该可以工作。有关验证器的文档,请参阅此处。
phone_number = fields.String(
validate=Length(
max=20,
error='Phone number must be a string shorter than 20 letters.'
)
)