如何根据另一个字段的存在条件验证字段。例如,只有在“国家”是“美国”时才需要“国家”。formencode有条件验证
感谢, 史蒂夫
编辑:
所以我想这样做:
chained_validators = [validators.RequireIfPresent('state', present="country")]
但错误信息与代替 “国家” “_the_form” 相关联。有没有办法将它链接到该字段?
如何根据另一个字段的存在条件验证字段。例如,只有在“国家”是“美国”时才需要“国家”。formencode有条件验证
感谢, 史蒂夫
编辑:
所以我想这样做:
chained_validators = [validators.RequireIfPresent('state', present="country")]
但错误信息与代替 “国家” “_the_form” 相关联。有没有办法将它链接到该字段?
在我公司的一个项目中发生同样的问题。我们为此编写了我们自己的Formencode验证器。我们目前试图将它与主项目合并。在此期间,你可以在这里下载:https://github.com/GevatterGaul/formencode
还存在,还有一份HOWTO,德国:http://techblog.auf-nach-mallorca.info/2014/08/19/dynamische_formulare_validieren_mit_formencode/
让我告诉你在你的榜样的背景下,快速纲要:
from formencode import validators
v = validators.RequireIfMatching('country', expected_value='US', required_fields=['state'])
v.to_python(dict(country='US', state='Virginia'))
主要好处是,与validators.RequireIfPresent
相比,validators.RequireIfMatching
仅在给定字段与给定值相匹配时才需要字段。在你的例子中,只有'国家'是'美国',那么它需要'国家'字段。
希望我能帮上忙。
那里有更好的验证库。即时通讯使用这个工作原因,但有一个像'not_empty'这样的选项已经是我书中红旗的开始。 – dtc 2017-10-05 18:27:16
我们可以得到一个代码示例,所以我们有更多的上下文吗? – MikeVaughan 2011-05-03 22:38:04
我只使用默认验证器,在我的情况下“NotEmpty”。所以在我的例子中,我有两个表单域,State和Country,当Country是US时,我只希望State不为空。否则,国家可能是空的。 – steve 2011-05-04 19:28:19