2016-07-07 84 views
-2

我需要限制對Django中模板的訪問。這是該方案:限制對Django模板的訪問

  1. guest用戶使用表單
  2. 如果窗體驗證和精細的用戶發送到example.com/success/網址。
  3. 如果訪客用戶試圖將該鏈接example.com/success發送給朋友。朋友會看到該頁面爲404.

我不知道如何做到這一點。有任何想法嗎?

+0

什麼接入* *做他們需要什麼?要登錄?有一定的權限?你有嘗試過什麼嗎? – Sayse

+2

你的錯誤在於認爲這與模板有關。這是您需要限制訪問的視圖。 –

+0

@DanielRoseman我不認爲這與模板有關。我知道我需要在視圖中定義邏輯。並且Sayse訪問將僅查看模板。我應該使用會話(cookies)或類似的東西來了解當前的訪客用戶可以訪問該視圖嗎? – l2310p

回答

0

而不是去一個不同的URL(/成功/),你可以顯示不同的東西,當表單被正確填寫。例如,在您的視圖:

def my_view(request, ...): 
    form = ... 
    show_success = False 

    if ... post method ...: 
     if form.is_valid(): 
      ... save etc. ... 
      show_success = True 

    return render(request, ..., {'show_success': show_success}) 

在模板:

{% if show_success %} 
    Success message here 
{% else %} 
    Form here 
{% endif %}