Djangoがclean_data属性を取得できませんでした

cleand_data属性は、clean()メソッドが呼び出された後にのみ使用できます。フィールドのクリーニング関数がフォーム検証でclean_field nameメソッドを使用して定義されている場合、djangoは最初にこの関数を呼び出し、最後にclean()関数を呼び出します。

def clean_mobile(self):
  mobile = self.cleaned_data ['mobile']#このような書き込みは間違っているため、cleaned_data属性は生成されません

 

  クリーニング関数を呼び出す本質は、フォームタイプをpythonデータタイプに変換することです。フォームに2つのフィールド、つまりmobileとpasswordがある場合、clean_mobileクリーニングフィールドmobileはフォームクラスで定義されます(つまり、フィールドmobileはclean_mobile()メソッドによって入力されます)。フォームタイプからpythonデータタイプに変換します)、次にフィールドパスワードは組み込みのclean()メソッドによってクリーンアップされ、Pythonタイプに変換されます(つまり、cleaned_data属性のパスワードフィールドのみで、login_form.cleaned_data ['password']から取得できます)。 )。data属性には、フォームのすべてのフィールド値が次のように含まれています。

 

正しい例:

       

 

   

       

 

 

  上記のコードは、フォーム属性を取得するためにdata属性を使用できることを読者に伝えています。form:register_post_form.password.valueを使用して、フロントエンドでフォームデータを取得することもできます。

  

  注:リーダーは、ブレークポイントメソッドを使用して、フォームオブジェクトに含まれるフィールドを表示できます。

 

おすすめ

転載: www.cnblogs.com/xiaohaodeboke/p/12757934.html