我想在模板中验证用户权限。如果用户有权限,他/她将能够访问该模板。在编写下面的代码并且我授予了用户权限后,当我查看页面时,它将落在{% 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 %}
答案 0 :(得分:3)
您是否在模板中传递了权限? 您是在视图中还是通过管理界面明确设置perms.paid.can_view_film? 用户是否具有perms.paid.can_view_film权限的组的一部分?
您确定应用名称是“付费”吗?这应该是应用程序名称,而不是模型名称。
答案 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
,他们会查看一件事。如果没有,他们会看到别的东西。这有帮助吗?