簡體   English   中英

formcode 條件驗證

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM