2014-12-26 3 views
0

내보기 일부 계산을 수행 한 다음 그 결과를 바탕으로 성공 메시지를 표시 할 수있는 새 페이지를 표시 한 다음 자동으로 3 초 후에 다른 페이지로 리디렉션합니다 url.django에서 2 연속 리디렉션을 수행하는 방법

def home(request): 
    #do some calculation 
    return HttpResponse('success') # and after 3 seconds it will redirect to new page. 
    # here I dont know how to proceed further 

또는

이 HTML과 함께하고있다
def home(request): 
    #do some calculation 
    return render(request, template) # and after 3 seconds it will redirect to new page. 
    # here I dont know how to proceed further 
+0

왜 내 대답을 방금 변경 했습니까? 다른 것보다 더 나쁜가? 나는 다른 사람보다 훨씬 더 설명해 주었다고 생각합니다. –

+0

J. C. Rocamonde 당신의 대답이 더 좋았습니다. 당신과 동의합니다. –

답변

1

장고에서는이 작업을 수행 할 수 없습니다. 페이지가로드되면 자바 스크립트를 사용하여 사용자를 리디렉션해야합니다. 따라서 템플릿에 다음과 같은 것이 필요합니다.

<script> 
    window.setTimeout(function(){ 
    window.location.href = "redirect_url"; 
    }, 3000); 
</script> 
+0

글을 참고하세요 : HTML5 브라우저에는 아직 "text/javascript"가 필요하지 않습니다. –

2

. 당신이 말한다면 "삼초 후"당신의 템플릿에 다음 코드를 작성하고 당신이 원하는 목적지로 리디렉션합니다 :

<script> 
// redirect to google after 3 seconds 
window.setTimeout(function() { 
    window.location.href = 'http://www.google.com'; 
}, 3000); 
</script> 

을 그건 그렇고, 난 당신이 정말로의 사용을하지 않는 나타났습니다 여기에 장고 렌더링. HttpResponse으로 일반 텍스트를 반환하면 클라이언트 측에서 아무 것도 할 수 없습니다. 템플릿을 렌더링하는 것은 내가 정말로 권장하지 않는 HttpResponse 파트에서 모두 코딩하지 않는 한 유일한 방법입니다.

서버 쪽에서 사용자를 리디렉션 할 수 없습니다. 브라우저가 리다이렉트해야한다는 것을 이해하게 해주는 특정 하이퍼 텍스트 조각을 반환 할 수 있습니다. 이것은 내가 방금 작성한 것입니다.

관련 문제