/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 而不是的主要内容,如果未能解决你的问题,请参考以下文章
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