2012-03-20 4 views
0

POST (아약스) 요청 후 페이지를 다시 렌더링하는 방법을 파악하는 데 문제가 있습니다. 나는 그것에 대해 제대로하는 법을 알고 싶어서 나쁜 디자인 습관에 빠지지 않습니다.Django - POST 후 렌더링 요청

렌더링 페이지 -> Ajax -> ?? Views.py

def searchform(request): 

    if request.method == 'POST': 
     #Do stuff with request.POST 
     return render(request, 'sameapp/anotherpage.html', my_dict) 

    else: 
     return render(request, 'sameapp/thispage.html') 

내 AJAX POST에서

성공합니다. Firebug 콘솔에서는 새로운 페이지가 (anotherpage.html) 적절한 데이터로 렌더링됩니다. 그러나 페이지가 리디렉션되지 않습니다. 이 경우에 사용할 적절한 패턴은 무엇입니까 (redirect_to?). POST 요청 후 적절한 데이터로 'anotherpage.html'을로드하려고합니다.

+0

에서 찾을 수 있습니다. 다른 페이지를로드하려면 왜 AJAX를 사용하고 있습니까? AJAX의 요점은 현재 페이지에 머무르고 서버 응답을 기반으로 현재 컨텐트의 일부만 업데이트하는 것입니다. – nrabinowitz

+0

오른쪽 - 새 템플릿을로드하여 뷰를 업데이트하고 싶습니다. – user1059105

+3

그런 다음 AJAX를 사용하지 마십시오. –

답변

0

장고와 아약스는 그렇게 작동하지 않습니다.

Ajax 요청의 데이터가 포함 된 새로운 컨텐츠를 얻으려면 리다이렉트가 필요하지 않습니다. Javascript를 사용하면 현재 페이지의 일부를 Ajax를 통해 얻은 컨텐츠로 대체 할 수 있습니다. JS 코드에 따라 다르지만, jQuery의 예제는 http://api.jquery.com/jQuery.ajax/

+2

그런 방식으로 작동하지 않는 장고는 아니며 순수하고 단순한 아약스입니다. –