field_1
默认情况下必须为 0,但不允许使用field_2
. 我的尝试:
from cerberus import Validator
schema = {
'value_1': {
'type': 'integer',
'default': 0
},
'value_2': {
'type': 'integer',
'excludes': ['value_1', ]
}
}
v = Validator(schema)
for doc in [{}, {'value_2': 1}, {'value_2': 1, 'value_2': 1}]:
if not v.validate(doc, schema):
print(v.errors)
else:
print(v.normalized(doc))
我有:
{'value_1': 0}
{'value_2': ["'value_1' must not be present with 'value_2'"]}
{'value_2': ["'value_1' must not be present with 'value_2'"]}
我想用标准化结果验证第二个文档没有错误{'value_1': 0, 'value_2': 1}
。我怎样才能达到预期的效果?
编辑对我的目标的更清晰的解释: -如果传入文档中存在并且
我想引发错误,但如果文档中不存在此键,则设置为。
- 我想在 cerberus 验证/规范化过程中进行,并希望通过更改验证模式或验证器来解决它value_1
value_2
0
value_1