Python Django:值错误。视图没有';t返回HTTPResponseObject
这是有争议的观点:Python Django:值错误。视图没有';t返回HTTPResponseObject,python,django,django-views,Python,Django,Django Views,这是有争议的观点: def index(request): if request.user.is_authenticated(): HttpResponseRedirect('/dashboard') else: return render(request, 'index.html') 当我进入索引页面时,我会看到: 值错误在/ 视图foobar.views.index未返回HttpResponse对象。信息技术 而没有返回任何值 这里可能有什么
def index(request):
if request.user.is_authenticated():
HttpResponseRedirect('/dashboard')
else:
return render(request, 'index.html')
当我进入索引页面时,我会看到:
值错误在/
视图foobar.views.index未返回HttpResponse对象。信息技术
而没有返回任何值
这里可能有什么问题?您在查看该页面时是否经过身份验证?在这种情况下,您需要确保还返回
HttpResponseRedirect
对象:
def index(request):
if request.user.is_authenticated():
return HttpResponseRedirect('/dashboard')
else:
return render(request, 'index.html')
否则,您将创建一个
HttpResponseRedirect
对象,但不返回它,这意味着代码将继续,函数将返回None
(这是Python中所有函数/方法的默认返回值)。if块中缺少return
def index(request):
if request.user.is_authenticated():
return HttpResponseRedirect('/dashboard')
else:
return render(request, 'index.html')
我没有被认证。我使用此视图的目的是将登录用户重定向到/dashboard,并为未登录的用户显示一个模板。为什么我总是需要创建HttpResponseRedirect?@Milos:我只是指出,在某些情况下,函数不返回某些内容,这就是为什么会出现这种错误。如果代码不符合您的要求,那么您需要更改它。是的,我意识到了!:)实际上,在if子句中没有返回任何内容。