2013-10-17 18 views
2

我的问题是:当我提交表单时,它落入我在视图中定义的else:块以下。在Django中使用PasswordResetForm

我试图做到:允许用户使用内置PasswordResetForm功能Django的权威性

Views.py

def UserResetPassword(request): 
    form = UserForgotPasswordForm(None, request.POST) 
    if request.method == 'POST': 
     if form.is_valid(): 
      form.save(from_email='[email protected]',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 
    }) 

在Django的1.5重置其密码提交输出的表格:Are you sure you entered that correctly?(例如,从else:条件发送的值

我在这做错了什么?

回答

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 = '[email protected]', 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如果你想有一个表单,让用户输入他们的旧密码改变他/她的密码。

+0

我试图让用户使用“忘记密码”功能重置密码,而不是改变它。 – CodeTalk

+0

这是非常赞赏karthikr!我收到“[Errno 61]连接被拒绝”的错误,这可能意味着它试图发送电子邮件(我认为),但我没有安装任何东西? – CodeTalk

+0

是的,你可能想暂时使用电子邮件控制台设置 – karthikr