【问题标题】:Problem with custom error messages for field validation in Marshmallow棉花糖中字段验证的自定义错误消息问题
【发布时间】:2021-12-24 05:42:54
【问题描述】:

我正在尝试为 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])

谁能解释一下可能发生的事情?

【问题讨论】:

    标签: python json flask marshmallow


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,它工作正常! 'invalid' 错误消息指的是字段类型而不是验证器函数!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-04
    • 1970-01-01
    相关资源
    最近更新 更多