2012-02-27 67 views
51

我可以在Django的模板中使用Auth应用程序的权限检查吗? (我想在特权用户的模板末尾显示一个简单的表格)检查Django模板中的权限

更重要的是,我应该做还是不是“Django方式”?

+0

对于像我这样的人,后来偶然发现,Django 1.5的链接改变了很轻微LY。这些信息现在可以在以下网址的文档中找到:https://docs.djangoproject.com/en/1.5/topics/auth/default/#permissions原始答案中没有任何改变,但这只是一个新的url :) – Xudonax 2013-09-10 07:35:44

回答

114

如果您正在寻找以检查模板的权限,下面的代码就足够了:

{% if perms.app_label.can_do_something %} 
<form here> 
{% endif %} 

凡模型指的是用户需要权限查看表单的模型。

有关更多示例,请参阅https://docs.djangoproject.com/en/stable/topics/auth/default/#permissions

当前登录用户的权限存储在模板变量{{ perms }}

(这需要以下上下文处理器启用:django.contrib.auth.context_processors.auth

+2

请注意,如果您以超级用户身份登录,则“perms.app_label.foobar”将始终为真,即使您拼错了权限名称也是如此。 – Flimm 2017-04-26 18:45:52