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子句中没有返回任何内容。