web-dev-qa-db-ja.com

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

データベースにユーザーがいるだけで、彼はスーパーユーザーです。 「ログアウト」ボタンともう一方のボタンは表示されますが、「crearzona」ボタンは表示されません。

13
user2170928

あなたはこれが欲しい ジェネリックビュー

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

11
lalo