zoukankan      html  css  js  c++  java
  • python处理权限关系一些注意事项

    在模型类中多对多的关系(必须是对象)

    如果要获取多对多表中的值,必须使用对象进行搜索,不能直接输入名称

    例:这样才能查找到(下面例子是针对,组设置多对多关到用户,现在要根据用户获取相应的组)
    user_get=User.objects.get(username=user_name)
    user_gp=adminGroup.objects.filter(group=user_get)

    user_gp=User.objects.filter(username=user_name).values("admingroup__name")

    例:以下这样是查找到不到

    user_gp=adminGroup.objects.filter(group="admin")或
    kkcc="admin"
    user_gp=adminGroup.objects.filter(group=kkcc)


    例:如果组要查到相应的用户,这样才能查找到(下面例子是针对,组设置多对多关到用户,现在要根据组获取相应的用户)

    user_get="superuser"
    user_gp=adminGroup.objects.get(group=user_get).多对多的字段名.all()
    user_gp=adminGroup.objects.get(group=user_get).username.all()

    权限的删除(记住一定要是对象)
    1.根据用户查找到组,把组删除
    user_user_list=User.objects.get(username="admin5")
    user_user_pp=adminGroup.objects.get(group=user_user_list)
    user_user_pp.delete()


    2.根据用户查找到组,从组中把该用户删除
    user_user_list=User.objects.get(username="admin5")
    user_user_pp=adminGroup.objects.get(多对多的字段=user_user_list)
    user_user_pp.多对多的字段.remove(user_user_list)
    例:
    user_user_list=User.objects.get(username="admin5")
    user_user_pp=adminGroup.objects.get(group=user_user_list)
    user_user_pp.group.remove(user_user_list)

    user_clear=User.objects.get(username=user_name)
    adminGroup.objects.get(group=user_clear).group.remove(user_clear)
    adminGroup.objects.get(name=group_name).group.add(user_clear)

    3.1.根据组查找权限,并清空(条件:组设定的多对多关系到权)
    per_menu_name="组名"
    adminGroup.objects.get(name=per_menu_name).permission.clear()

    3.2根据组添加权限(条件:组设定的多对多关系到权,注filter对应是set,如果是单个get对应add)
    mm_jj=adminPermission.objects.filter(pname=u'上传记录')
    adminGroup.objects.get(name=per_menu_name).permission.set(mm_jj)

    3.3根据权限给组加权限(条件:组设定的多对多关系到权,注filter对应是set,如果是单个get对应add)
    注意:反向操作一定是 权限对象.组模型名_set.add(组的对象)
    mm_hh = adminGroup.objects.get(name=per_menu_name)
    mm_jj=adminPermission.objects.get(pname=u'上传记录')
    mm_jj.admingroup_set.add(mm_hh)


    首先需要导入Permission, User模块:

    from django.contrib.auth.models import Permission, User #用户 权限
    添加权限:

    Permission.objects.create(name=u'权限管理',content_type_id=2,codename=u'权限管理描述')

    添加用户权限:

    perm = Permission.objects.get(codename=u'权限管理')#首先你需要添加"权限管理"这项权限
    User.objects.get(username='270001').user_permissions.add(perm)
    删除用户权限:

    perm = Permission.objects.get(codename=u'权限管理')#首先你需要添加"权限管理"这项权限
    User.objects.get(username='270001').user_permissions.remove(perm)
    批量添加用户权限:

    perm1 = Permission.objects.get(codename=u'权限管理')
    perm2 = Permission.objects.get(codename=u'用户管理')
    User.objects.get(username='270001').user_permissions.add(perm1,perm2)
    清空用户权限:

    User.objects.get(username='270001').user_permissions.clear()
    查询用户权限,并输出

    c = User.objects.get(username='270001').user_permissions.values()
    for i in c:
    print i

  • 相关阅读:
    关于trunk、access以及hybrid的一些简单知识
    EasyUI 创建对话框
    EasyUI Window和Layout
    EasyUI 异步Tree
    EasyUI 创建Tree
    EasyUI Tree添加节点
    EasyUI Ajax 表单
    EasyUI Tree checkbox node
    EasyUI 表单 tree
    EasyUI DataGrid合并单元
  • 原文地址:https://www.cnblogs.com/weilaibuxiangshuo/p/10388629.html
Copyright © 2011-2022 走看看