例えば会員登録とかでパスワードを確認のために2回入力してもらうときとか、両方の値があっているかチェックする必要があります。
Djangoの標準バリデーションだとそこまではやってくれないんですね。
でも、バリデーションのカスタマイズはとっても簡単です。簡単なハズなのに、とってもてこずりました。w
# -*- coding: utf-8 -*-
from django import forms
class RegistForm(forms.Form):
name = forms.CharField(max_length=100)
mailadd = forms.EmailField(max_length=100)
passwd = forms.CharField(min_length=6, max_length=12, widget=forms.PasswordInput(render_value=False))
passwd_confirm = forms.CharField(min_length=6, max_length=12, widget=forms.PasswordInput(render_value=False))def clean_passwd_confirm(self):
_pswd = self.cleaned_data[‘passwd’]
_pswd_confirm = self.cleaned_data[‘passwd_confirm’]
if _pswd!=_pswd_confirm:
raise forms.ValidationError(u’確認用パスワードが異なります。’)
else:
return _pswd_confirm
clean_フィールド名のメソッドが、対象フィールドのバリデーション用メソッドです。self.cleand_dataで値にアクセス、検証してNGならraiseする。OKなら値をそのまま返す。
これだけ!w