我想发送一封确认电子邮件,以便更改用户的密码。
我在Django中遇到了一个经典问题,服务器返回此错误:
'模型表格'没有属性cleaning_data
def forgottenPwdEmail(request):
if request.method == 'POST':
form = PasswordResetRequestForm(request.POST)
if User.objects.filter(email = form.cleaned_data['email']).exists() and form.is_valid():
user = form.cleaned_data['email']
sendResetPasswordMail(user, request.META['HTTP_HOST'])
return redirect('passwordConfirmation')
else:
form = PasswordResetRequestForm()
return render(request, 'front/reset_password_form.html', {'form': form})
如果我在Stackoverflow中查看几个答案,我就不会调用 form.is_valid()方法。我继续我的搜索,但我的代码昨天工作,但只有当用户连接时。当用户忘记密码时,他无法连接他的会话。
对不起我的英语,我不能说得很好,但如果你愿意,我可以给你更多细节:)
答案 0 :(得分:3)
您在致电cleaned_data
之前尝试访问form.is_valid()
:
if User.objects.filter(email = form.cleaned_data['email']).exists() and form.is_valid():
如果您更改订单,我认为您将获得cleaned_data
:
if form.is_valid() and User.objects.filter(email = form.cleaned_data['email']).exists():
在后面的情况下,首先验证表格,如果它有效,您将在if条件的第二个子句中提供该数据。