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