如何在marshmallow模式中添加多个验证参数

时间:2018-01-04 02:56:02

标签: python-3.x unit-testing validation marshmallow

我的一个班级模型中有以下架构:

class SocialMediaSchema(Schema):
    facebook_profile_url = fields.String(required=False, validate=validate.Length(0, 71, 'Facebook username is too long.')

除了验证长度之外,我还希望能够确保facebook_profile_url永远不会等于字符串"http://www.facebook.com/"

1 个答案:

答案 0 :(得分:4)

您可以将列表作为validates参数传递:

class SocialMediaSchema(Schema):
    facebook_profile_url = fields.String(required=False, validate=[
        validate.Length(0, 71, 'Facebook username is too long.'),
        lambda x: x != "http://www.facebook.com/"
    ])

来自documentation

  

validate(可调用) - 在反序列化期间调用的验证器或验证器集合。