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