【问题标题】:How to check if a user has at least one Permission in Django如何检查用户是否在 Django 中至少拥有一个权限
【发布时间】:2020-11-23 22:53:31
【问题描述】:

我正在尝试向最终用户显示他们没有分配权限。

如何使用 Django 模板做到这一点?

【问题讨论】:

    标签: python-3.x django django-views django-templates


    【解决方案1】:

    您可以通过简单的if not 检查权限组来做到这一点。

    {% if not user.groups.count %}
        Hey User, you do not have permissions.
    {% endif %}
    

    【讨论】:

    • 很好,但这对我来说效果很好 {% not perms.count %} 显示消息 {% endif %}
    【解决方案2】:

    当前登录用户的权限存储在模板中 变量{{ perms }},阅读更多here

    要检查登录用户是否在foo 应用中具有任何权限,只需使用:

    {% if perms.foo %}
    

    要求:

    django.contrib.auth.context_processors.auth 上下文处理器已启用

    【讨论】:

      【解决方案3】:

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

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

      当前登录用户的权限存储在模板变量{{ perms }}中。这是django.contrib.auth.context_processors.PermWrapper 的一个实例,它是一个模板友好的权限代理。

      更多信息https://docs.djangoproject.com/en/dev/topics/auth/default/#permissions

      【讨论】:

        【解决方案4】:

        这对我来说效果很好

        {% not perms.count %}
            display message
        {% endif %}
        

        【讨论】:

          猜你喜欢
          • 2018-12-10
          • 2013-12-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-09-22
          • 2020-05-22
          • 2019-06-26
          • 1970-01-01
          相关资源
          最近更新 更多