53

ログインしたユーザーがスーパーユーザーであるかどうかをテンプレート/ビューでどのように認識しますか?

ユーザーがスーパーユーザーでない場合に完全に非表示にしたいフォーム(テンプレート内)に特定のボタンがあります

どうやってそれをやりますか?

4

3 に答える 3

113

オブジェクトをチェックアウトis_superuserします。User

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

編集: @mustafa-0x コメントの後

上記は、デフォルトではない設定にdjango.core.context_processors.request含まれていることを前提としています。TEMPLATE_CONTEXT_PROCESSORS

デフォルト設定TEMPLATE_CONTEXT_PROCESSORS:

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)。つまり、ほとんどの場合{{ user }}、ビューを介してコンテキストに追加する必要なく、またはrequestコンテキスト プロセッサが上記のようにユーザーにアクセスできるようにする必要はありません。{{ request.user }}

于 2012-04-08T19:23:12.900 に答える