장고

2012-11-19 3 views
1

에 성공 페이지를 숨기려면 어떻게 알고 싶습니다 :장고

예를 들어, 나는 사용자에 채우고있는 형태를 가지고 있고, 그가 제출하면, 페이지가 리디렉션에 "감사합니다" 페이지. 모든 것이 잘 작동합니다. urls.py에서 나는 페이지가 존재 함을 가리키는이 줄을했다 :

url(r'^thankyou/$', 'render_form'), 

을하지만 URL의 mysite.com/thankyou/에 입력 할 때 다음 페이지가 나타납니다 "당신이 감사"... 그러나 나는이 필요 양식을 제출하고 사용자가 직접 양식을 열려고 할 때 양식을 숨길 때만 나타납니다.

도와주세요. 미리 감사드립니다!

답변

3

리디렉션 전에 폼 처리 뷰에서 세션에 무엇인가 넣을 수 있으며 감사 URL에서 확인하십시오. 해당 페이지가 없으면 403 오류를 반환하십시오. 같은 뭔가 :

def form_handling_view(request): 
    if request.POST: 
    form = MyForm(request.POST) 
     if form.is_valid(): 
      ... handle the form ... 
      request.session['form_posted'] = True 
      return redirect('thank_you') 

def thank_you(request): 
    if not request.session.pop('form_posted', False): 
     return HttpResponseForbidden('not permitted') 
    ... render thank_you page ... 

참고 나는 키가 상관없이 세션에서 삭제되지 않도록하기 위해 thank_you에서 pop을 사용하고 있습니다.

+0

예, 작동하지만 thank_you 메소드에서 일부 조건을 편집해야했습니다. Daniel 대단히 감사합니다. –