2016-09-09 2 views
0

. 여기추가 자바 스크립트 리디렉션 (HttpResponse에) 내가 장고 <code>from django.shortcuts import redirect</code> 사용자가 리디렉션되기 전에 자바 스크립트 경고 메시지를 표시 할 들면, 내가 원하는</p> <p>에서 리디렉션을 사용하고

는 내가 지금까지있어 무엇 :

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

리디렉션이 작동하지만 자바 스크립트는하지 않습니다. 또한

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

이 경고 창을 트리거를했지만, 나는 위의 방법으로 동등한 리디렉션을 추가하는 방법을 모르겠어요.

답변

2

프론트 엔드와 백엔드간에 혼동을 느낍니다. 사용자가이보기를 요청하면 Django의 HTTPResponseRedirect을 통해 서버가 브라우저에 다른 페이지로 리디렉션하도록 지시하는 302 redirect HTTP response을 전송합니다. 이는 자바 스크립트 경고를 포함 할 수있는 일반적인 200 응답 (즉, 일반 Django 응답 객체가 아닌 리디렉션)과 다릅니다.

앞에 앞에로드하는 자바 스크립트를 표시해야 사용자가 리디렉션 응답을 반환합니다.

0

당신은 사용할 수 있습니다 js appproachwindow.location

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