2012-11-19 78 views
1

我想知道,如果有人知道:如何隱藏成功頁面在Django

例如,我有一個用戶填寫表單,當他提交時,網頁將重定向到「謝謝」頁。一切正常。在urls.py我有這行指出存在的頁面:

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

但是,當我在URL mysite.com/thankyou/輸入,頁面「謝謝你」出現......但我需要它僅當我提交表單並在用戶試圖直接打開時隱藏它纔會出現。

請幫忙。提前致謝!

回答

3

您可以在重定向之前在表單處理視圖中的會話中放入某些內容,並在感謝網址中對其進行檢查:如果不存在,則返回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方法。非常感謝丹尼爾。 –