フィールド検証ジャンゴform.Form

 

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)字段规则校验

2validators校验(RegexValidator校验器或自定义校验函数)

3)局部钩子(类中定义的以clean_字段名命名的函数,校验正常必须返回该字段的值self.cleaned_data.get('name')

4)全局钩子(类中定义的函数名clean,校验正常必须返回该对象的校验结果值return self.cleaned_data

5)每一步通过校验单结果都以字典形式保存在类对象的cleaned_data属性中

おすすめ

転載: www.cnblogs.com/open-yang/p/11223160.html