私は電子メールのリストのためのテキストフィールドを持つTurboGearsの2のフォームを持っています。 ToscaWidgetsやFormEncodeを使用してSetとEmailのフォームバリデーターを連鎖させる簡単な方法はありますか?それとも自分のバリデーターを書く必要がありますか?
0
A
答えて
0
私は以下のようになるはずです。それは最初の無効で停止するのではなく、各電子メールを試すという利点があります。また、状態にエラーを追加して、どのエラーが発生したかを知ることができます。
from formencode import FancyValidator, Invalid
from formencode.validators import Email
class EmailList(FancyValidator):
""" Takes a delimited (default is comma) string and returns a list of validated e-mails
Set the delimiter by passing delimiter="A_DELIMITER" to the constructor.
Also takes all arguments a FancyValidator does.
The e-mails will always be stripped of whitespace.
"""
def _to_python(self, value, state):
try:
values = str(value).split(self.delimiter)
except AttributeError:
values = str(value).split(',')
validator = formencode.ForEach(validators.Email())
validator.to_python(values, state)
return [value.strip() for value in values]
0
私が望んだのは、StringとIntバリデータのようなフィールドにちょうど固執できるバリデータでした。自分のバリデーターを作成しない限り、これを行う方法がないことがわかりました。私は完全性のためにここにそれを掲示しているので、他の人が利益を得ることができます。
1
http://formencode.org/Validator.html
からもう一つの注目すべきバリデータはformencode.compound.Allある - これは、化合物のバリである - つまり、それは、入力としてバリを取るバリデータです。スキーマは一例です。この場合、Allはバリデータのリストを取り、それぞれを順番に適用します。 formencode.compound.Anyは、最初の渡しバリデーターをそのリストに使用する補足です。 FormEncode validatorsで
0
- パイプとラッパー、あなたはできます
from formencode import validators, compound
compound.Pipe(validators.Wrapper(to_python=lambda v: v.split(',')),
validators.Email())
関連する問題
- 1. 春ブーツ - テスト - バリ:バリ
- 2. FormEncode、pylons、mako例
- 3. ルビー:バリ
- 4. カスタマイズJSFバリMSG
- 5. 更新バリFormControl
- 6. スタイリングASP.NETバリ
- 7. エクスプレス・バリ.getValidationResult()
- 8. データ注釈バリ
- 9. jqueryのバリ - addClassRules
- 10. HTML5必要バリ=ボタン
- 11. Hibernateバリでの問題
- 12. PropelのORMバージョン1.6.4 -understandingバリ
- 13. jQueryのInArrayバリ機能は
- 14. 停止実行フローエクスプレス・バリ
- 15. チェーン(* iter)とチェーン.from_iterable(iter)
- 16. チェーン
- 17. チェーン
- 18. チェーン
- 19. チェーン
- 20. sfContextのは::のgetInstance() - > getUserメソッド()今、バリ
- 21. どのようにユニットテストデータ注釈バリへ
- 22. Angular2:たとえばバリ制限
- 23. Laravelのバリ - 整合性制約違反
- 24. ぼかしのバリとリフレッシュDiv
- 25. FormGroup非同期バリFormControlがエラー
- 26. 角度2:バリ、ReactiveForms、FormBuilderとカスタムクラス
- 27. Formencodeはif_missingを無視しています
- 28. Pylonsフォーム要素の配列を持つFormEncode
- 29. チェーン選択 - jQuery
- 30. jQueryのチェーン
興味深い、私はアップグレードが好き。 – Robbie
13行目に値を割り当てます。 values = validator.to_python(values、state) – Robbie