Python django HttpResponse位置重定向

Python django HttpResponse位置重定向,python,django,Python,Django,当http响应为True时,我试图重定向到另一个页面。我添加了response['Location']='login.html',但它不起作用,我得到了一个写有True的页面,但没有登录页面。你能帮帮我吗?我是django的新手 我已经写了这个代码 if user_obj: response = HttpResponse(True) response['Location'] = 'login.html' return response else: return H

当http响应为
True
时,我试图重定向到另一个页面。我添加了
response['Location']='login.html'
,但它不起作用,我得到了一个写有
True
的页面,但没有登录页面。你能帮帮我吗?我是django的新手

我已经写了这个代码

if user_obj:
    response = HttpResponse(True)
    response['Location'] = 'login.html'
    return response
else:
    return HttpResponse(False)

从django.url反向导入


返回HttpResponseRedirect(反向('url_name'))

您可以简单地使用Django核心函数

if user_obj:
    // Do something
    return redirect('some_url')

这将不起作用,因为您不使用300-399范围内的响应,该范围用于重定向,例如。此外,您不需要自己做这件事,您可以利用Django的:

如果用户对象:
返回HttpResponseRedirect('login.html')
其他:
返回HttpResponse(False)
您也可以指定内容,但通常情况下,如果浏览器进行重定向,则不会长时间显示:

if user_obj:
    return HttpResponseRedirect('login.html', content='True')

else:
    return HttpResponse(False)
如果用户对象:
返回HttpResponseRedirect('login.html',content='True')
其他:
返回HttpResponse(False)

然而,使用
.html
被(至少Django)认为是“丑陋的”。使用
reverse
redirect
解析给定视图的URL也更好。

这是因为状态代码不在300-399范围内。我正在向ajax post发送True,但您的回答是如何实现这一点?@RahulRaj:ajax请求不会关心重定向,因此,您需要自己在JavaScript层进行重定向。
if user_obj:
    return HttpResponseRedirect('login.html', content='True')

else:
    return HttpResponse(False)