模板内的 Django 用户权限

Django user permission inside template

我通过管理站点在 Django 中创建了一个自定义授权权限,我将该权限添加到一个用户(而不是一个组),现在我想询问模板中的请求用户是否拥有它,但什么都没有 works.It 不是重复的,我已经检查过类似的问题和这项工作的 none:

{% 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)

想法是将其放在模板中,而不是在视图中使用更多代码。 有什么想法吗?,提前致谢。

django 在模板中使用变量 perms 作为登录用户的权限,因此您可以在模板内部使用

{% if perms.auth.add_something %}
 {{do_smth}}
{% endif %}

django 文档中有一节 Authentication data in templates 也描述了模板中的权限