【问题标题】:Using PasswordResetForm in Django在 Django 中使用 PasswordResetForm
【发布时间】:2013-10-26 15:27:48
【问题描述】:

我的问题是:当我提交表单时,它属于我在视图中定义的else: 块。

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

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

我在这里做错了什么?

【问题讨论】:

    标签: django django-authentication django-1.5


    【解决方案1】:

    我发现了几个问题:

    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

    【讨论】:

    • 我正在尝试允许用户使用“忘记密码”功能重置密码,而不是更改密码。
    • 非常感谢 karthikr!我收到“[Errno 61] Connection refused”错误,这可能意味着它试图发送电子邮件(我认为)但我没有设置?
    • 是的,您可能想暂时使用控制台设置来处理电子邮件
    • 您包含的 PasswordChangeForm 链接似乎已过期。这是一个有效的:docs.djangoproject.com/en/1.8/_modules/django/contrib/auth/…
    猜你喜欢
    • 2013-09-27
    • 2014-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-06
    • 2013-03-30
    • 2018-06-27
    • 2012-10-27
    相关资源
    最近更新 更多