模板内的Django用户权限

时间:2016-10-06 20:38:06

标签: django django-permissions

我通过管理站点在django中创建了一个自定义身份验证权限,并且我将该权限添加到用户(而不是群组),现在我想询问模板中的请求用户是否拥有它但没有任何效果。它&#39 ;不是重复,我已经检查了类似的问题,但没有一个工作:

{% if perms.auth.add_something %}

{% if 'auth.add_something' in request.user.get_all_permissions %}

{% if request.user.has_perm('add_something') %}

我添加了我的观点:

class NotificationSelectView(View):

    template = 'myapp/notification_read.html'

    def get(self, request, *args, **kwargs):
        t = tree(request)
        req_var_list = []
        analist = notifications_list(request.user)
        level = LevelProcess.objects.get(
            level_hierarchical = 3
        )
        subprocess= Process.objects.filter(level = level)
        user = request.user
        t.update({
           'subprocess': subprocess,
           'analist':analist,
        })
        return render(request, self.template, t)

将它放在模板中的想法,而不是在视图中使用更多代码。 任何想法?,提前谢谢。

1 个答案:

答案 0 :(得分:1)

django在模板中它使用变量perms获取登录用户的权限,这样你就可以使用内部模板

{% if perms.auth.add_something %}
 {{do_smth}}
{% endif %}
来自django文档的

有一个Authentication data in templates部分,它还描述了模板中的权限