检查django模板中的权限不起作用

时间:2013-06-06 18:02:10

标签: python django

我想在模板中验证用户权限。如果用户有权限,他/她将能够访问该模板。在编写下面的代码并且我授予了用户权限后,当我查看页面时,它将落在{% else %}语句上。表明用户没有权限。我怎么能这样做呢?

#CREATED A GROUP IN DJANGO ADMIN CALLED 'Premium'

Class Paid(models.Model):
    #models here

    class Meta:
        permissions=(
             ("view_film","Can view film"),
        )

查看

def eyo(request):
    return render_to_response('eyo.html',context_instance=RequestContext(request))

模板

{% block content %}

  {% if perms.paid.can_view_film %}

      <form action='https://www.test.com/checkout' method='post'>
      <input name='submit' type='submit' value='Checkout' />
     </form>

   {% else %}

    <p> yo broke! </p>

  {% endif %}

2 个答案:

答案 0 :(得分:3)

您是否在模板中传递了权限? 您是在视图中还是通过管理界面明确设置perms.paid.can_view_film? 用户是否具有perms.paid.can_view_film权限的组的一部分?

您确定应用名称是“付费”吗?这应该是应用程序名称,而不是模型名称。

Django Perms

答案 1 :(得分:2)

我正在根据我正在处理的Django项目中的权限进行一些条件渲染。一个小例子就是一个特殊的图标。基本上,如果用户具有删除权限,他们会看到一个图标,如果没有,则会看到另一个图标。这就是我的模板中的完成方式:

{% if perms.List.can_delete_list %}
    <li><a href="/social/a/search/" class="settings-edit"><span class="fui-search"></span></a></li>
{% else %}
    <li><a href="{% url 'dashboard_edit' %}" class="settings-edit"><span class="fui-new"></span></a></li>
{% endif %}

如果登录用户有can_delete_list,他们会查看一件事。如果没有,他们会看到别的东西。这有帮助吗?