如果用户是超级用户,我想显示一个按钮。我找到了不同的例子,但我的代码不起作用。该按钮不会出现。谁知道为什么?
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 :(得分:6)
你想要这个Generic view:
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 %}