我使用Cerberus来验证作为JSON发布到基于烧瓶的restapi的数据。我希望至少有两个字段freight_id
和tender_id
中的一个。在
这些映射将被视为有效:
{"freight_id": 1, "price" : 12000}
{"tender_id": 1, "price": 12000}
{"freight_id": 1, "tender_id" : 2, "price": 12000}
但这个不会:
^{pr2}$我如何用Cerberus为这种验证制定一个模式?在
我几乎阅读了所有的文档,但没有找到任何答案。^{
@gcw的解决方案可以缩短:
由于这三个模式无论如何都是互斥的,因此不需要使用
^{pr2}$one_of
规则,只需测试其中一个是否匹配:使用Cerberus1.0,您可以使用
oneof
规则以其粘合形式实现,如本文档example。这样,您就可以针对不同的模式进行验证,其中只有一个模式必须验证:缺点是,您可能需要对您的dict增加一个级别,如下面的
price
:第一种方案,运费和价格:
投标书和价格表:
^{pr2}$第三种方案,运费、投标和价格:
把这些放在一起:
结果:
相关问题 更多 >
编程相关推荐