2

我的问题是:当我提交表单时,它会落入else:我在视图中定义的下面的块中。

我要完成的工作:PasswordResetForm允许用户使用django auth中的 django 1.5 内置功能重置密码

视图.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:条件发送的值

我在这里做错了什么?

4

1 回答 1

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", )

此外,如果您想要一个允许用户通过输入旧密码来更改其密码的表单,您应该使用。PasswordChangeForm

于 2013-10-17T22:50:52.980 回答