TurboGears Widgetsのバリデーションについて
Widgetには、バリデーションが設定できます。こんな感じ。
class EditUserWidgets(widgets.WidgetsList): user_name = widgets.TextField(name="user_name", label=u"ログイン名", validator=validators.NotEmpty()) display_name = widgets.TextField(name="display_name", label=u"ユーザー名(表示用)", validator=validators.NotEmpty()) password = widgets.PasswordField(name="password", label=u"パスワード") email_address = widgets.TextField(name="email_address", label=u"メールアドレス", validator=validators.Email(not_empty=True)) modify = widgets.CheckBox(name="modify", label=u"利用者") id = widgets.HiddenField(name="id", validator=validators.Int())
validatorsにはデフォルトでいっぱい種類が用意されているので、これを使うだけで基本的なバリデーションはできてしまいます。名前だけリストアップするとこんな感じ。formencode/validators.py より。型名になってるのは、その型であることのバリデーションと同時に、型変換もしてくれます。
-
- ConfirmType
- Wrapper
- Constant
- MaxLength
- MinLength
- NotEmpty
- Empty
- Regex
- PlainText
- OneOf
- DictConverter
- IndexListConverter
- DateValidator
- Bool
- Int
- Number
- String
- UnicodeString
- Set
- URL
- StateProvince
- PhoneNumber
- FieldStorageUploadConverter
- FileUploadKeeper
- DateConverter
- TimeConverter
- PostalCode
- StripField
- StringBool
- SignedString
- FormValidator
- RequireIfMissing
- FieldsMatch
- CreditCardValidator
- CreditCardExpires
- CreditCardSecurityCode
See: http://formencode.org/module-formencode.validators.html