我的问题是:当我提交表单时,它会落入我在视图中定义的else:
块中。
我想要完成的任务:允许用户使用django auth中内置的PasswordResetForm
功能中的django 1.5重置密码
Views.py
def UserResetPassword(request):
form = UserForgotPasswordForm(None, request.POST)
if request.method == 'POST':
if form.is_valid():
form.save(from_email='admin@thedomain.com',email_template_name='mysite/reuse/forgotpassword.html', use_https=False,token_generator=default_token_generator, html_email_template_name=None)
else:
return HttpResponse("Are you sure you entered that correctly?")
return render(request, 'mysite/reuse/forgotpassword.html', {
'form':form
})
提交表单后,会输出: Are you sure you entered that correctly?
(例如从else:
条件发送的值
我在这里做错了什么?
答案 0 :(得分:3)
我看到了几个问题:
def UserResetPassword(request):
form = UserForgotPasswordForm(request.POST or None) #data=is request.POST or None
if request.method == 'POST':
if form.is_valid():
form.save(from_email = 'admin@thedomain.com', email_template_name= 'mysite/reuse/forgotpassword.html', use_https = False, token_generator = default_token_generator, html_email_template_name=None)
return render(request, 'mysite/reuse/forgotpassword.html', {
'form':form
})
另外,摆脱else
部分。您希望能够看到错误是什么。 render()
会显示错误。
在表格中,
fields = ("email")
应该是
fields = ("email", )
另外,如果您想要一个允许用户输入旧密码来更改密码的表单,则应为using PasswordChangeForm
。