zoukankan      html  css  js  c++  java
  • 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模型中的某个用户添加一定的权限!')
    
    始于才华,忠于颜值;每件事情在成功之前,看起来都是天方夜谭。一无所有,就是无所不能。
  • 相关阅读:
    《简养脑》读书笔记
    如何用86天考上研究生
    Improving your submission -- Kaggle Competitions
    Getting started with Kaggle -- Kaggle Competitions
    入门机器学习
    《世界因你不同》读书笔记
    [转载]Python 包构建教程
    [转载] Pytorch拓展进阶(二):Pytorch结合C++以及Cuda拓展
    集合不能存放重复元素
    在jupyter notebook中绘制KITTI三维散点图
  • 原文地址:https://www.cnblogs.com/guyan-2020/p/12354548.html
Copyright © 2011-2022 走看看