Django没有返回HTTPResponse Obj

2024-10-03 09:08:23 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我的英语不好,很抱歉,但如果你需要问题,我会在这里:)

我在Django中看到了许多关于HttpResponse对象主题的答案,但我无法解决它。在

通常情况下,用户插入自己的电子邮件地址,以便收到一封新密码的电子邮件。在

def forgottenPwdEmail(request):
    if request.method == 'POST':
        form = PasswordResetRequestForm(request.POST)
        user = User.objects.get(username=request.user.username)
        user.confirmed = True
        user.save()
        sendResetPasswordMail(user, request.META['HTTP_HOST'])
    else:
        form = PasswordResetRequestForm()
        return render(request, 'front/reset_password_form.html', {'form': form})

显示这些错误后:“View”没有返回HttpResponse对象。它没有返回任何结果。无论如何我都可以接收邮件,所以问题出在这个函数中,但我无法解决它。在

如果你有什么想法,我很开放:)


Tags: 对象django答案用户form主题电子邮件request
2条回答

发生这种情况是因为您的视图没有对POST请求返回响应。 当电子邮件成功发送时,您应该添加类似^{}页的内容,如下所示:

def forgottenPwdEmail(request):
    if request.method == 'POST':
        form = PasswordResetRequestForm(request.POST)
        user = User.objects.get(username=request.user.username)
        user.confirmed = True
        user.save()
        sendResetPasswordMail(user, request.META['HTTP_HOST'])

        return redirect('/password-reset-email-sent/')
     ......

您的if语句中缺少返回。在

def forgottenPwdEmail(request):
    if request.method == 'POST':
        form = PasswordResetRequestForm(request.POST)
        user = User.objects.get(username=request.user.username)
        user.confirmed = True
        user.save()
        return sendResetPasswordMail(user, request.META['HTTP_HOST'])
    else:
        form = PasswordResetRequestForm()
        return render(request, 'front/reset_password_form.html', {'form': form})

我假设sendResetPasswordMail也返回一个HttpResponse

希望这有帮助

相关问题 更多 >