2013-07-05 182 views
6

如果用户是超级用户,我想显示一个按钮。我发现了不同的例子,但我的代码不起作用。该按钮不出现。任何人都知道为什么?django request.user.is_superuser不起作用

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”按钮。

+0

如果它不只是'user.is_superuser'? – karthikr

+0

是的,它的工作原理!我已经找到了它的要求。之前... – user2170928

回答

6

你要这个Generic view

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

在设定范围内的处理器?

这是更redeable:

{% 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 %}

+0

感谢您的帮助!它现在有效。 – user2170928

+0

请将答案设置为正确。如果它可以帮助你:) – lalo