回答

57

User對象退房is_superuser

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

編輯:後@穆斯塔法-0X評論

上述假定您有包含在你的TEMPLATE_CONTEXT_PROCESSORS設置django.core.context_processors.request這不是默認的

default setting for 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 }}

+0

是不是隻是檢查用戶是否已經過身份驗證?我需要知道,如果他們是超級用戶 – JohnnyCash 2012-04-08 19:27:41

+1

我想知道是否is_superuser會做的伎倆.. – JohnnyCash 2012-04-08 19:30:34

+0

對不起,把錯誤的一個 - 我現在已經改變 – 2012-04-08 19:32:12

3

作爲評價討論如上,可以使用User對象,它是在模板自動可供選擇:

{% if user.is_superuser %} 
<div class="alert alert-success" role="alert"> 
You are logged in as {{user.first_name}}, here are the 
<a href="/admin/">admin pages</a> for changing content. 
</div> 
{% endif %} 

您還可以使用user.is_staff這可能是更合適的。

相關問題