我想使用Cerberus来验证对象中是否存在字段。你知道吗
我想用这样的方法:
my_schema = {
'normal_field': {
'type': 'string',
},
'forbidden_field': {
'forbid': True,
},
}
基本上,我不想接受随forbidden_field
而来的对象。现在我接受通过以下方式更改我的验证器:
validator.allow_unknown = False
这基本上就是用“允许”字段设置模式的诀窍,但我并不喜欢它的功能,因为它禁止我接受其他字段,而不仅仅是forbidden_field
。你知道吗
我还看到了allowed
和forbidden
验证规则,但是它们检查字段的值,而不是字段的存在。你知道吗
那么,我怎么能告诉我的验证器只禁止特定领域的存在与Cerberus?你知道吗
我似乎记得以前遇到过这个特定的用例。您可以尝试以下操作:
结果应该返回
False
,v.errors
应该说“字段被禁止!!”你知道吗请参见:
我用^{} 规则解决了这个问题,该规则还允许我设置
default_setter
值。你知道吗@kchan的答案适用于不允许字段,但它破坏了规范化集成(例如尝试将其与
default_setter
一起使用)。你知道吗相关问题 更多 >
编程相关推荐