我有以下表格:
class SignupForm(forms.ModelForm):
time_zone = forms.ChoiceField(choices=TIMEZONE_CHOICES)
email = forms.EmailField()
confirm_email = forms.EmailField()
password1 = forms.CharField(widget=forms.PasswordInput())
password2 = forms.CharField(widget=forms.PasswordInput())
class Meta:
model = Customer
fields = (
'first_name',
'last_name',
'coupon_code'
)
def clean_email(self):
email = self.cleaned_data['email']
print 'email cleaned data: '+cleaned_data
try:
User.objects.get(email=email)
raise forms.ValidationError('Email already exists.')
except User.DoesNotExist:
return email
def clean_confirm_email(self):
print '-----'
print 'confirm email cleaned data: '+cleaned_data
email = self.cleaned_data['email']
confirm_email = self.cleaned_data['confirm_email']
if email != confirm_email:
raise forms.ValidationError('Emails do not match.')
return confirm_email
这打印:
email cleaned data:
{'coupon_code': u'coup', 'first_name': u'Gina', 'last_name': u'Silv', 'time_zone': u'America/New_York', 'email': u'4email@example.net'}
-----
confirm email cleaned data:
{'first_name': u'Gina', 'last_name': u'Silv', 'confirm_email': u'4email@example.net', 'time_zone': u'America/New_York', 'coupon_code': u'coup'}
当它运行时,我收到错误:
key error 'email' self.cleaned_data['email']
如何访问clean_confirm_email
方法中的电子邮件字段?