23

ログインしたユーザーがスーパーユーザーであるかどうかをテンプレート/ビューで確認するにはどうすればよいですか?Django:ユーザーがスーパーユーザーでない場合、テンプレートのボタンを隠す

ユーザーは、あなたがそれをやって行くだろうどのようにスーパーユーザー

でない場合、私は完全に隠されたい(テンプレートで)私のフォーム上の特定のボタンがありますが?

答えて

57

Userオブジェクトにis_superuserをチェックアウト:@のムスタファ-0xのは、あなたがた設定あなたTEMPLATE_CONTEXT_PROCESSORSdjango.core.context_processors.requestが含まれていることを前提として上記

コメントした後

{% if request.user.is_superuser %} 
    ... 
    <button>...</button> 
    ... 
{% else %} 
... 
{% endif %} 

EDITデフォルトのではありません。ほとんどの場合、あなたはすでにあなたにそれを追加することなく、{{ user }}へのアクセス権を持っているだろうことを意味

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.contrib.auth.context_processors.auth', 
    'django.core.context_processors.debug', 
    'django.core.context_processors.i18n', 
    'django.core.context_processors.media', 
    'django.core.context_processors.static', 
    'django.core.context_processors.tz', 
# 'django.core.context_processors.request', 
    'django.contrib.messages.context_processors.messages', 
) 

すでにdjango.contrib.auth.context_processors.authを含み(および特にrequestコンテキストプロセッサが含まれていません):

default setting for TEMPLATE_CONTEXT_PROCESSORSコンテクストを{{ request.user }}

+0

ユーザーが認証されているかどうかを確認するだけではありませんか?私は彼らがスーパーユーザーかどうかを知る必要がある – JohnnyCash

+1

is_superuserがトリックをするかどうか疑問に思う。 – JohnnyCash

+0

申し訳ありませんが、間違ったものを置く - 私は今それを変更しました –

3

経由で表示することができます。Userオブジェクトを使用することもできますテンプレートで自動的に利用可能:

user.is_staffも適切です。

関連する問題