回答

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这可能是更合适的。

相关问题