valueError at change-password 视图authapp.views.ChangePassword没有返回一个HttpResponse对象。它返回的是None

问题描述 投票:1回答:1

我做的下面的函数显示如下--ValueError at change-passwordThe view authapp.views.ChangePassword didn't return an HttpResponse object. It returned None instead.please help TIA. 它返回的是None.please help 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)
python django django-forms python-requests valueerror
1个回答
0
投票

你不 渲染 但你应该返回一个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 块,那么对于一个无效的表单,它将不会做出响应。

© www.soinside.com 2019 - 2024. All rights reserved.