私たちはフックするフォームを構築する方法について話を簡単に紹介
を処理するように、カスタム認証メカニズムを実装するために2つの目標を
:三つのカテゴリー
clean_を開始機能があるかどうかを調べるために、その後1部分フックclean_columnを(フィールド検証が完了したとき)、および名前があれば、それは関数を呼び出す
(クリーン2グローバルフックを)原理は、チェックサムフィールドを完了した後、フィールド間チェックされます。フィールド検証が完了すると、関数の実行した場合、ルックアップ機能は、クリーンを持っているかどうかを
partialグローバルフックフックの実行順序を
三つの基本的な構文
ValidationErrorをするdjango.core.exceptionsインポート、NON_FIELD_ERRORSから
:DELFのclean_column(セルフ)
値= self.cleaned_data。 ( 'キー')GET
:IF trueに
戻り値
:他
)(昇給ValidationErrorをします
四つオーバーライドクリーン()メソッド
クリーン()メソッドではなく既定のプロセスフローのみcleaned_data返すある
5注
1つのフィールドは、単一のメソッド指定
フックに従って2が、上記の場合、例外が順に実行されていない直接スローされます以下のフック行う
3クリーン()最も高い優先度
の例示的なシナリオ6
1は、ユーザのプレゼンスに挿入されているが(部分的にフック)に許可されていない
:DEFのclean_user(自己)
USER1 = self.cleaned_data.get(「ユーザ」)
ヴァル=ユーザー。 objects.filter(=ユーザーUSER1)
未ヴァルた場合:
ヴァル戻る
:他の
ValidationErrorを(「ユーザ名がすでに存在している」)昇給
エラー{{}} field.errors表示に従って
確認2と二次パスワード入力されたパスワード(グローバルフックを)
DEFクリーン(セルフ):
PWD = self.cleaned_data.get( "パスワード")
PWD1 = self.cleaned_data.get( "password_1")
PWD == PWD1 IF:
返すself.cleaned_data
他:
昇給ValidationErrorを(「パスワードを二回矛盾」)
のビューが機能
g_error = form.errors.get(「__ __すべて 『)# このようにして得られたグローバルフックが情報与えられた
遠位
{%filed.label場合==』パスワードを確認「%}
{} {} g_error
{%} ENDIF%