Marshmallow 中字段验证的自定义错误消息问题

Problem with custom error messages for field validation in Marshmallow

我正在尝试为 Marshamallow 架构中的 class 字段添加自定义错误消息。字段表示如下所示:

phone_number = fields.String(validate=Length(max=20),
                             error_messages={'invalid': 'Phone number must be a string shorter than'
                                                        '20 letters.'})

我原以为在将请求数据加载到模式后,我会收到错误消息“Phone 数字必须是一个短于 20 个字母的字符串。”但是,我仍然收到默认值消息“长于最大长度 20。”。加载请求数据的代码为:

        try:
            request_data = EditInvestorSchema().load(request.json)
        except ValidationError as error:
            return get_response(400, list(error.messages.values())[0])

任何人都可以阐明可能发生的事情吗?

如果您在验证器中定义消息,它应该可以工作。 有关验证器的文档,请参阅 here

phone_number = fields.String(
    validate=Length(
        max=20, 
        error='Phone number must be a string shorter than 20 letters.'
    )
)