我想对默认
进行一些更改django.contrib.auth.forms.PasswordResetForm
我做了以下事情:
class CustomPasswordResetForm(PasswordResetForm):
def is_valid(self):
ret = forms.Form.is_valid(self)
for f in self.errors:
self.fields[f].widget.attrs.update({'class': 'invalid'})
return ret
def clean_email(self):
email = self.cleaned_data.get('email')
if not User.objects.filter(email=email).exists():
raise forms.ValidationError('כתובת אימייל זאת לא קיימת במערכת!')
没有什么可复杂的,只是为无效字段添加了一个类,如果电子邮件不存在则添加错误(不确定为什么默认情况下不会发生这种情况)
我还在urls.py中定义了新表单
url(r'^password_reset/$', auth_views.password_reset,{'password_reset_form': CustomPasswordResetForm,}, name='password_reset'),
我所覆盖的两个功能都按预期工作,但重置密码表单不再有效,我没有收到电子邮件,即使表单没有验证错误到/ password_reset / done /