`
Zhongwei_leg
  • 浏览: 558551 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

user.has_perm(perm) 中参数 perm 的格式问题 - Django

阅读更多

看一下官方文档中 has_perm(perm) 的说明:

has_perm(perm )
Returns  True   if the user has the specified permission, where perm is in the format  "<app   label>.<permission   codename> " . If the user is inactive, this method will always return  False .
(其实也可以使用 request.user.get_all_permissions() 在终端中参看该用户的权限值,顺便就可以看到 perm 的格式了。)

下面说明一下<app   label>.<permission   codename>  分别代表什么,以 app authenication 中 models.py 的定义为例:

# -*- coding: utf-8 -*-

from django.db import models

class Auth_control(models.Model):
    '''
    用于权限控制(测试)
    '''
    class Meta:
        permissions = (
            ('can_manage_users', '管理用户权限'),
        )


<app label> 的值为 authenication,
<permission codename> 的值为 can_manage_users,
所以参数 perm 的值就应该为 authentication.can_manage_users

然后就可以在 views.py 中做判断了:

if request.user.has_perm('authentication.can_manage_users'):
        can = True
    else:
        can = False


template  中:

{% if can %} 
            <a href="/newadmin/auth/">用户管理</a>
{% endif %}

 

分享到:
评论

相关推荐

    PyPI 官网下载 | django-perm-2.1.0.tar.gz

    要将`django-perm`添加到你的Django项目中,首先需要在命令行中运行`pip install django-perm-2.1.0`来安装。然后,在你的`settings.py`文件中,将`django_perm`添加到`INSTALLED_APPS`列表中。接着,你需要进行必要...

    Python库 | django-perm-2.2.0.tar.gz

    此外,`groups`和`user_permissions`字段在Django的User模型中与Django Perm紧密配合,实现权限的关联和管理。 总结来说,Django Perm 2.2.0是Django框架中不可或缺的权限管理工具,它提供了强大的功能来构建安全且...

    Python-djangoguardianDjango12实现了单个对象权限

    `django-guardian`提供了`assign`、`remove_perm`、`get_objects_for_user`和`get_objects_for_group`等方法,用于动态地为用户或组分配和移除权限,以及获取具有特定权限的对象列表。 ```python from guardian....

    Django中对通过测试的用户进行限制访问的方法

    限制访问可以基于某种权限,某些检查或者... if request.user.is_authenticated() and request.user.has_perm('polls.can_vote')): # vote here else: return HttpResponse(You can't vote in this poll.) 并且Djan

    解决Django模板无法使用perms变量问题的方法

    这里需要注意的是,在`view1`中使用了`render`函数,并且通过`request.user.has_perm`检查了用户的权限。而在`view2`中使用了`render_to_response`函数,并且手动指定了`RequestContext`。 #### 总结 通过以上步骤...

    django自带的权限管理Permission用法说明

    `has_perm`方法需要提供一个字符串参数,格式为`app_label.codename`,以便区分不同应用下的同名权限。 此外,Django还提供了装饰器`@permission_required`,可以用于函数或视图上的权限验证。例如: ```python ...

    Python-djangorules一个小巧但是强大的应用提供对象级别的权限管理且不需要使用数据库

    本文将深入探讨`django-rules`的工作原理、安装、配置以及如何在项目中实际应用。 ### 1. django-rules简介 `django-rules`的核心概念是规则(rules),这些规则定义了用户或组对特定对象的操作权限。与Django内置...

    django_ief:django的所见即所得字段

    什么是django_ief ? 这是django数据库模型的字段,您不需要任何额外的表单即可进行编辑或保存。如何使用它? 首先,安装应用程序并添加URL。 # settings.pyinstalled_apps = [ ..., 'django_ief' , ...,]# urls....

    django xadmin action兼容自定义model权限教程

    return ('approve' not in self.remove_permissions) and self.user.has_perm(f'{self.app_label}.{codename}') ``` 2. **修改 `get_model_perms` 方法**: ```python class TaskApproveSettings: # ... def...

    Django权限设置及验证方式

    另一种方法是在视图函数内部使用`request.user.has_perm()`来检查用户权限。这种方法更灵活,可以根据需要在任何位置调用。 ```python def dashboard(request): if request.user.has_perm('app.can_view_dashboard...

    django-auth-basics:PrettyPrinted的django身份验证基础

    - 权限和组:掌握如何定义和管理用户权限,以及如何使用`check_permissions`和`has_perm`方法。 - 中间件:学习如何编写中间件来实现全局的身份验证逻辑。 - 社交登录集成:了解如何利用Django的社交应用如`social-...

    django-lockdown:使用可配置的预览授权来锁定Django网站或单个视图

    return request.user.is_authenticated and request.user.has_perm('lockdown.preview') LOCKDOWN_PASSWORDS = ['your-secret-password'] LOCKDOWN_URL_EXCEPTIONS = [r'^admin/', r'^accounts/'] # 不锁定的URL...

    在Django的session中使用User对象的方法

    例如,你可以使用`user.has_perm('app.permission_name')`检查用户是否具有特定的权限,或者`user.groups.all()`获取用户所属的所有组。 除了基本的属性和方法,`User`对象还包括如`get_full_name()`、`set_...

    Django的用户模块与权限系统的示例代码

    这里的 `has_perm` 方法接受一个字符串参数,格式为 `'app_label.perm_name'`。在这个例子中,`myapp` 是应用名称,`change_bar` 表示用户有修改 `Bar` 对象的权限。 ##### 3.3 用户组与组权限 除了单独为用户分配...

    django-command-role

    例如,你可以通过检查 `request.user.has_perm('app_name.execute_command')` 来限制命令的访问。 要实现这一功能,你需要: 1. **定义权限**: 在你的应用的 `models.py` 文件中,可以使用 `permissions` 属性定义...

    Django用户认证系统 组与权限解析

    4. **模板标签**:在模板中,Django提供了一些内置的模板标签,如`{% if user.has_perm %}`,用于在用户具备特定权限时显示或隐藏内容。 5. **自定义权限逻辑**:如果默认的“add”,“change”,“delete”权限不...

    在Django中实现添加user到group并查看

    在Django中,管理用户权限和角色是通过`User`模型和`Group`模型来实现的。`User`模型代表应用程序中的用户,而`Group`模型则用来组织一组具有相同权限的用户。本文将详细解释如何在Django中将用户添加到组(Group)...

Global site tag (gtag.js) - Google Analytics