表单编码条件验证

2024-09-29 21:41:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我如何基于另一个字段有条件地验证一个字段的存在。例如,仅当“country”为“US”时才需要“state”。在

谢谢, 史蒂夫

编辑:

所以我想这样做:

chained_validators = [validators.RequireIfPresent('state', present="country")]

但是错误消息与“_the_form”关联,而不是“state”。有没有办法把它链接到字段?在


Tags: theform消息编辑链接错误条件country
1条回答
网友
1楼 · 发布于 2024-09-29 21:41:18

在我公司的一个项目中也遇到了同样的问题。我们为此编写了自己的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只在给定字段与给定值匹配时才需要字段。在您的示例中,只有当“country”为“US”时,它才需要“state”字段。在

希望我能帮忙。在

相关问题 更多 >

    热门问题