/change-password/ 处的 ValueError 视图 authapp.views.ChangePassword 未返回 HttpResponse 对象。它返回 None 而不是

Posted

技术标签:

【中文标题】/change-password/ 处的 ValueError 视图 authapp.views.ChangePassword 未返回 HttpResponse 对象。它返回 None 而不是【英文标题】:ValueError at /change-password/ The view authapp.views.ChangePassword didn't return an HttpResponse object. It returned None instead 【发布时间】:2020-08-17 06:12:45 【问题描述】:

我制作的以下函数说明了以下内容 - /change-password/ 处的 ValueError 视图 authapp.views.ChangePassword 没有返回 HttpResponse 对象。它返回 None 。 请帮助 TIA。

def ChangePassword(request):
    if request.method == 'POST':
        form = PasswordChangeForm(data=request.POST, user=request.user)
        if form.is_valid():
            form.save()
            return redirect('profile')
    else:
        current_user = request.user
        form = PasswordChangeForm(user=current_user)
        pwform = 'form': form, 'user': current_user
        return render(request, 'authapp/changepw.html', pwform)

【问题讨论】:

【参考方案1】:

您不呈现响应,您制作表单等,但您应该返回 HTTP 响应,例如 render

from django.shortcuts import render

def ChangePassword(request):
    if request.method == 'POST':
        form = PasswordChangeForm(data=request.POST, user=request.user)
        if form.is_valid():
            form.save()
            return redirect('profile')

    else:
        current_user = request.user
        form = PasswordChangeForm(user=current_user)
    # not in the else block
    return render(request, 'some_template.html', 'form': form)

render 调用应该else 子句中执行。由于您可能发出 POST 请求,但 form 无效。如果在 else 块中渲染它,那么对于无效的表单,它不会渲染响应。

【讨论】:

我重新编辑了帖子,请检查一下,因为我已经在渲染但仍然出现同样的错误! @LinuJose: 你需要在else 下渲染它,而不是in else 部分,因为现在如果form 无效,它将在问题的代码中返回None

以上是关于/change-password/ 处的 ValueError 视图 authapp.views.ChangePassword 未返回 HttpResponse 对象。它返回 None 而不是的主要内容,如果未能解决你的问题,请参考以下文章

如何通过php的头功能移动到特定的navtab

Could not resolve placeholder 'jdbc username' in string valu

ThreadLocalMap中为什么valu是强引用,不是弱引用

ThreadLocalMap中为什么valu是强引用,不是弱引用

linux报错--Loaded plugins: fastestmirror Options Error: Error parsing '': invalid boolean valu

Terminating app due to uncaught exception 'NSUnknownKeyException' this class is not key valu