django request.user.is_superuser 不起作用

Posted

技术标签:

【中文标题】django request.user.is_superuser 不起作用【英文标题】:django request.user.is_superuser doesn't work 【发布时间】:2013-07-03 12:55:30 【问题描述】:

如果用户是超级用户,我想显示一个按钮。我找到了不同的示例,但我的代码不起作用。按钮不出现。有人知道为什么吗?

views.py

def inici(request):    
zones = Zona.objects.all()    
return render_to_response('principal/inici.html', dict(zones=zones),
    context_instance = RequestContext(request))

inici.html

% if not user.is_authenticated %
     ....
% else %  
<ul>                    
    <li class="nivell1">
    <a href="/accounts/logout/?next=/">Logout</a> 
    </li>               
    <li class="nivell1">
    <a class="nivell1" herf="#"> Configuració </a>          
    </li>

    % if request.user.is_superuser %                      
    <li class="nivell1">
        <a href="zona/crear/">Crear zona</a>
    </li>   
    % endif %             
</ul>                   
% endif %

我在数据库中只有一个用户,他是超级用户。我可以看到“注销”按钮和另一个按钮,但看不到“crear zona”按钮。

【问题讨论】:

不应该只是user.is_superuser吗? 是的,它有效!我是应要求找到的。之前... 【参考方案1】:

你想要这个Generic view:

class IniciView(ListView):
    template_name = 'principal/inici.html'
    model = Zona

设置中有上下文处理器吗?

这更可重复:

% if user.is_authenticated %
    <ul>                    
      <li class="nivell1">
        <a href="/accounts/logout/?next=/">Logout</a> 
      </li>               
      <li class="nivell1">
        <a class="nivell1" herf="#"> Configuració </a>          
      </li>

    % if user.is_superuser %                      
      <li class="nivell1">
        <a href="zona/crear/">Crear zona</a>
      </li>   
    % endif %             
</ul>  
% else %  
    ...
% endif %

我已将% if request.user.is_superuser % 更改为% if user.is_superuser %

【讨论】:

以上是关于django request.user.is_superuser 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Django之路

Django系列

django 错误

mac电脑安装django ,运行django报错解决

Django 大神带你飞系列~走进Django

django的文档