我想有效的电子邮件不存在,所以我这样做
forms.py
class RegisterForm(auth_forms.UserCreationForm):
code = forms.CharField(label=_('valid code'), max_length=6)
def clean(self):
cleaned_data = super().clean()
email = cleaned_data['email']
if email and User.objects.filter(email=email):
raise forms.ValidationError(_('email already in use'), code='invalid')
class Meta:
model = User
fields = ('first_name', 'last_name', 'email', 'code')
我希望,当用户注册时,如果电子邮件存在,我会将“已经在用户中的电子邮件”返回给他,现在我只是打印它,当表单无效时,所以我在views.py
< / p>
views.py
class RegisterView(SuccessMessageMixin, FormView):
template_name = 'account/signup.html'
form_class = RegisterForm
extra_context = {'page': 'register'}
success_url = '/'
success_message = _('register success')
def form_valid(self, form):
user = form.save()
login(self.request, user)
return super().form_invalid(form)
def form_invalid(self, form):
print(form.error_messages)
error_msg = list(form.error_messages.values())[0]
return utils.ajax_error(error_msg)
但是,当我运行它时,我会提供一些数据来形成,所有有效的存在email
我应该email aliready in use
,但我总是{'password_mismatch': "The two password fields didn't match."}
但是password1
和password2
是一样的!
为什么我总是收到有关密码的错误!