• 168.权限-用户权限和权限相关操作


    (1)set():一次性的为用户添加多个权限,权限可以放在一个列表中。

    def user_permission(request):
        # 获取当前数据库中第一为user用户
        user = User.objects.get(pk=1)
    
        # 首先获取当前app下的User模型在django_content_type表中的信息
        content_type = ContentType.objects.get_for_model(User)
        # 根据content_type查看当前的app下的User表的权限
        permissions = Permission.objects.filter(content_type=content_type)
        for permission in permissions:
            print(permission)
    
        # 1. 为用户user添加多个权限(一次性添加一个权限列表)使用set()
        user.user_permissions.set(permissions)
        return HttpResponse('为User模型中的某个用户添加一定的权限!')
    

    (2)add():为用户user添加权限,不能是列表,示例代码如下:

    # 3. 为用户user添加某个权限,必须是一个个的权限
    user.user_permissions.add(permissions[0], permissions[1])
    
    add()函数中可以是列表,但是必须是打散开的,即在列表前面有一个“*”,示例代码如下:
    user.user_permissions.add(*permissions)
    

    (3)clear():将user上的所有权限一次性全部删除。示例代码如下:

    user.user_permissions.clear()
    

    (4)remove():将user表中用户的权限一个一个的删除。示例代码如下:

    def user_permission(request):
        # 获取当前数据库中第一为user用户
        user = User.objects.get(pk=1)
    
        # 首先获取当前app下的User模型在django_content_type表中的信息
        content_type = ContentType.objects.get_for_model(User)
        # 根据content_type查看当前的app下的User表的权限
        permissions = Permission.objects.filter(content_type=content_type)
        for permission in permissions:
            print(permission)
        # 4. remove()删除user表上的用户权限,一个一个的删除
        user.user_permissions.remove(permissions[0])
        return HttpResponse('为User模型中的某个用户添加一定的权限!')
    
    remove()函数中如果传入列表的的话,一定要在列表前面加上“*”,将列表打散。示例代码如下:
    def user_permission(request):
        # 获取当前数据库中第一为user用户
        user = User.objects.get(pk=1)
    
        # 首先获取当前app下的User模型在django_content_type表中的信息
        content_type = ContentType.objects.get_for_model(User)
        # 根据content_type查看当前的app下的User表的权限
        permissions = Permission.objects.filter(content_type=content_type)
        for permission in permissions:
            print(permission)
        user.user_permissions.remove(*permissions)
        return HttpResponse('为User模型中的某个用户添加一定的权限!')
    

    (5)has_perm()函数:判断用户是否有这个权限,只能传入一个权限,进行判断,权限的格式就是“appname.codename”。而has_perms()可以判断一个权限的列表。示例代码如下:

    def user_permission(request):
        # 5. has_perm()是否有这个权限
        if user.has_perm('login_logout.add_user'):
            print("您拥有该权限!")
        else:
            print("您没有该权限!")
        return HttpResponse('为User模型中的某个用户添加一定的权限!')
    

    (6)get_all_permissions()获得所有的权限,示例代码如下:

    def user_permission(request):
        # 获取当前数据库中第一为user用户
        user = User.objects.get(pk=1)
        # 6. get_all_permissions()获得所有的权限
        permissions = user.get_all_permissions()
        for permission in permissions:
            print(permission)
        return HttpResponse('为User模型中的某个用户添加一定的权限!')
    
    始于才华,忠于颜值;每件事情在成功之前,看起来都是天方夜谭。一无所有,就是无所不能。
  • 相关阅读:
    mac下通过复制启动两个tomcat
    搭建一个redis集群
    ubantu系统下永久修改主机名
    民宿项目知识_截取最后一个逗号
    民宿项目知识_string判断是否为空
    民宿项目知识_enum
    民宿项目中的知识点_动态删除tr
    笔记:迁移来自xinlang的笔记
    SVN使用笔记
    iOS性能优化笔记
  • 原文地址:https://www.cnblogs.com/guyan-2020/p/12354548.html
Copyright © 2020-2023  润新知