我是Cerberus的新手,最近将Cerberus版本从1.1升级到1.3.2。但是得到验证错误。请查找验证架构
my_schema =
{
'email': {
'type': 'string', 'maxlength': 1000,
'regex': EMAIL_PATTERN, 'required': True
},
'guest': {
'type': 'boolean', 'required': False,
'excludes': ['password', 'issue_password_reset']
},
'password': {
'type': 'string', 'minlength': 9, 'required': True,
'excludes': 'issue_password_reset'
},
'prefix': {
'type': 'string', 'nullable': True,
'required': False, 'maxlength': 10
},
'first_name': {
'type': 'string', 'nullable': True,
'required': False, 'maxlength': 50
},
'last_name': {
'type': 'string', 'nullable': True,
'required': False, 'maxlength': 50
},
'phone_number': {
'type': 'string', 'required': False,
'nullable': True, 'regex': PHONE_NUMBER_PATTERN
},
'birthday': {
'type': 'string', 'required': True,
'excludes': 'is_legal_drinking_age'
},
'is_legal_drinking_age': {
'type': 'boolean', 'required': True,
'excludes': 'birthday'
},
'issue_password_reset': {
'type': 'boolean', 'required': True,
'excludes': 'password'
},
}
data = {
"email": "guest123@email.com",
"guest": True,
"birthday": "1975-05-05",
"prefix": "Ms.",
"first_name": "Allison",
"last_name": "Smith",
"phone_number": "(212) 555-2002"
}
valid = Validator(default_schema)
resp = valid.validate(data)
print(valid.errors)
print(resp)
对于Cerberus版本1.3.2,获取错误
对于Cerberus 1.1版,验证工作正常
希望能找到一些帮助
如here所述,该行为是正确的,因为文档不包含按要求定义的字段。返回的错误指出了这一点
相关问题 更多 >
编程相关推荐