2016-06-21 4 views
-1

と一致している必要がありますこんにちは、私は私がconfirm_new_passwordと一致しなければならないNEW_PASSWORD検証をしたいCharFieldですが、例えば、別のCharFieldですCharFieldですが、別のCharFieldですDjangoのフォーム検証

と一致しなければならないことを検証についてのドキュメントを見つけることができません:

class ChangePassword(forms.Form): 
    new_password = forms.CharField(label='New Password', max_length=100, error_messages={'required': 'New password is required'}, widget=forms.PasswordInput()) 
    confirm_new_password = forms.CharField(label='Confirm New Password', max_length=100, error_messages={'required': 'Confirm New password is required'}, widget=forms.PasswordInput()) 

https://docs.djangoproject.com/en/1.9/ref/forms/fields/#charfield

主なものは、required, max_length, min_lengthているようですか?

+1

を[相互依存のフィールドを清掃し、有効](https://docs.djangoproject.com /en/1.9/ref/forms/validation/#cleaning-and-validating-fields-that-depend-on-each-other) – Sayse

+0

フォーム検証の最初の見出しの1つです。 – Sayse

+0

Djangoには、認証[ビュー](https://docs.djangoproject.com/en/1.9/topics/auth/default/#built-in-auth-views)と[フォーム](https: /docs.djangoproject.com/ja/1.9/topics/auth/default/#built-in-auth-forms)。パスワードの変更を処理します。あなた自身で書くのではなく、これらを使用してください。 – Alasdair

答えて

-1

カスタムフォームの検証を実行するには、そのようなクリーン()関数をオーバーライドする必要があります:

class ChangePassword(forms.Form): 
    new_password = forms.CharField(label='New Password', max_length=100, error_messages={'required': 'New password is required'}, widget=forms.PasswordInput()) 
    confirm_new_password = forms.CharField(label='Confirm New Password', max_length=100, error_messages={'required': 'Confirm New password is required'}, widget=forms.PasswordInput()) 

    def clean(self): 
     password = self.cleaned_data['new_password'] 
     confirm_password = self.cleaned_data['confirm_new_password'] 
     if password != confirm_password: 
      raise forms.ValidationError('Your passwords do not match!') 
+0

ユーザがフィールドのいずれかの値を入力しない場合、この例は 'KeyError'を返します。 Sayseがリンクしているドキュメントは、これを正しく行う方法を示しています。 – Alasdair

+0

ご回答ありがとうございます。これは、ハイライトされた主な問題を解決するための例です。 – zubhav

関連する問題