2013-07-05 12 views
6

Voglio mostrare un pulsante se l'utente è un superutente. Ho trovato diversi esempi ma il mio codice non funziona. Il pulsante non appare. Qualcuno sa perché?django request.user.is_superuser non funziona

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

ho solo un utente nel database e lui è un super user. Riesco a vedere il pulsante "logout" e l'altro, ma non il pulsante "crear zone".

+0

Nel caso non sia solo 'user.is_superuser'? – karthikr

+0

Sì, funziona! L'avevo trovato con la richiesta. prima ... – user2170928

risposta

6

si desidera che questo Generic view:

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

sono i processori di contesto nelle impostazioni?

Questo è più 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 %} 

ho cambiato {% if request.user.is_superuser %} a {% if user.is_superuser %}

+0

Grazie per il vostro aiuto! Ora funziona. – user2170928

+0

Imposta la risposta come corretta, per favore. Se ti aiuta :) – lalo