2013-07-05 8 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