![](/img/trans.png)
[英]Rerendering a Pylons form with a querystring parameter after FormEncode validation fails
[英]formencode conditional validation
我如何根據另一個字段的存在有條件地驗證一個字段。 例如,僅當“國家”為“美國”時才需要“州”。
謝謝,史蒂夫
編輯:
所以我想這樣做:
chained_validators = [validators.RequireIfPresent('state', present="country")]
但錯誤消息與“_the_form”而不是“state”相關聯。 有沒有辦法將它鏈接到該字段?
在我公司的一個項目中遇到了同樣的問題。 為此,我們編寫了自己的 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
僅在給定字段與給定值匹配時才需要一個字段。 在您的示例中,僅當“國家”為“美國”時,才需要“州”字段。
希望我能幫上忙。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.