将javascript添加到Django重定向(HttpResponse)

时间:2016-09-09 14:51:29

标签: python django redirect httpresponse

我在Django中使用重定向from django.shortcuts import redirect

我想要的是让用户在被重定向之前显示Javascript警报消息。

这是我到目前为止所得到的:

response = redirect("someUrl")
response.write('<script>alert(\'You must remove an item before adding another\');</script>')
response['location'] += "?active=" + "all"
return response

重定向有效,但Javascript没有。我也试过

response = HttpResponse('<script>alert(\'You must remove an item before adding another\');</script>')
return response

这会触发警报窗口,但我不确定如何添加与上述方法相同的重定向。

2 个答案:

答案 0 :(得分:2)

你在前端和后端之间感到困惑。当用户请求此视图时,服务器(通过Django的HTTPResponseRedirect)发送302 redirect HTTP response,告知浏览器重定向到其他页面。这与正常的200响应(即正常的Django响应对象,而不是重定向)不同,您可以在其中包含javascript警报。

您需要在用户返回重定向响应之前在您最初加载的视图上显示javascript。

答案 1 :(得分:1)

您可以使用js appproach window.location

url = 'someUrl'
resp_body = '<script>alert("You must remove an item before adding another");\
             window.location="%s"</script>' % url
return HttpResponse(resp_body)