RegexValidatorのチェッカー:
でカスタムフォーム部品クラスセットフィールドバリデータの値が導入さRegexValidatorモジュール
ジャンゴインポートフォーム
django.core.validatorsのインポート RegexValidator
django.core.exceptions インポート ValidationErrorをします
クラス MYFORM(forms.Form):
名前= forms.CharField(
#必須=真、#のデフォルトは真
MIN_LENGTH = 2 、
MAX_LENGTH = 6 、
初期= 'ABC' 、# のデフォルト
help_textに= " の長さは2 に。6つの文字!"、 #のヘルプ
error_messages = [{ #カスタムエラーメッセージ(デフォルトは英語です)
「必要な」:" 空にすることはできません!"、
「MIN_LENGTH」:" より小さくすることはできません2つの文字!"
}]、
バリ= [RegexValidator(R&LT '^(\ W)+ $' 、' ユーザー名のみ、英数字、アンダースコア!')、]、
#無効= Trueの#デフォルトは真表示
)
メール= fields.EmailField(必要= Falseに、
error_messages、= { '必要':U ' Eメールを空にすることはできません'、'無効':U ' メールボックスフォーマットエラー' }、
ウィジェット= widgets.TextInput(ATTRS = { 'クラス':"フォームコントロール"、'プレースホルダ':U ' 邮箱' }))
カスタム機能チェック:
django.shortcuts 輸入レンダリング、のHttpResponse
ジャンゴインポートフォーム
app01 輸入モデル
django.core.validatorsのインポート RegexValidator
輸入再
django.core.exceptions インポート ValidationErrorをします
#直接フィールドのカスタムチェック機能、バリデータの使用
デフ name_valid(値):
name_re = re.compile(R '^ [-ZA-Z _] + $')
そうでない場合(値)name_re.match:
昇給 ValidationErrorを(「唯一の下線文字で始めることができます!」)
クラス MYFORM(forms.Form):
名前= forms.CharField(
#必須=真、#のデフォルトは真
MIN_LENGTH = 2 、
MAX_LENGTH = 6 、
初期= 'ABC' 、# のデフォルト
help_textに= " の長さは2 に。6つの文字!"、 #のヘルプ
error_messages = [{ #カスタムエラーメッセージ(デフォルトは英語です)
「必要な」:" 空にすることはできません!"、
「MIN_LENGTH」:" より小さくすることはできません2つの文字!"
}]、
バリ= [RegexValidator(R&LT '^(\ W)+ $' 、' ユーザー名のみ、英数字、アンダースコア!')、name_valid]、
#カスタム検証ルール(カスタム関数名のリストが放電または紹介ジャンゴ建てRegexValidatorのバリデータを、混在させることができます)
)
キャリブレーション・シーケンス:
自定义类实例化返回值对象的is_valid()方法调用:
(1)字段规则校验
(2)validators校验(RegexValidator校验器或自定义校验函数)
(3)局部钩子(类中定义的以clean_字段名命名的函数,校验正常必须返回该字段的值self.cleaned_data.get('name'))
(4)全局钩子(类中定义的函数名clean,校验正常必须返回该对象的校验结果值return self.cleaned_data)
(5)每一步通过校验单结果都以字典形式保存在类对象的cleaned_data属性中