2016-07-07 13 views
-2

Djangoでテンプレートへのアクセスを制限する必要があります。これはシナリオです:Djangoテンプレートへのアクセスを制限する

  1. フォームが検証され、罰金example.com/success/ URLにユーザーが送信されている場合は、ゲストユーザがフォーム
  2. を使用しています。
  3. ゲストユーザがそのリンクexample.com/successを友達に送信しようとした場合。友人はそのページを404として表示します。

私はこれを達成する方法がありません。何か案は?

+0

何アクセス* *彼らは必要なのでしょうか?ログインするには?一定の許可を得るためには?何か試しましたか? – Sayse

+2

あなたの間違いは、これがテンプレートと関係があると考えていることです。アクセスを制限するために必要なビューです。 –

+0

@DanielRosemanこれはテンプレートとは関係ありません。私はビューでロジックを定義する必要があることを知っています。そして、アクセスはテンプレートを見るだけであると言う。現在のゲストユーザーがビューにアクセスできることを知るために、セッション(Cookie)などを使用する必要がありますか? – l2310p

答えて

0

異なるURL(/ success /)に行くのではなく、フォームが正しく埋められたときに別のものを表示することができます。たとえば、あなたのビューで:あなたのテンプレートで

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 %} 
関連する問題