10-权限-用户和权限相关操作

  1. 用户与权限管理:

用户与权限管理:

权限本身只是一个数据,必须和用户进行绑定,才能起到作用。User模型和权限之间的管理,可以通过以下几种方式来管理:

  1. myuser.user_permissions.set(permission_list):直接给定一个权限的列表。
  2. myuser.user_permissions.add(permission,permission,...):一个个添加权限。
  3. myuser.user_permissions.remove(permission,permission,...):一个个删除权限。
  4. myuser.user_permissions.clear():清除权限。
  5. myuser.has_perm('<app_name>.<codename>'):判断是否拥有某个权限。权限参数是一个字符串,格式是app_name.codename
  6. myuser.get_all_permissons():获取所有的权限。

实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
def operate_permission(request):
user = User.objects.get(telephone='1111')
#可以根据content_tpye 的外键关联进行添加
content_type = ContentType.objects.get_for_model(Article)
permissions = Permission.objects.filter(content_type=content_type)

#里面传递的是一个可迭代对象,上面的permission是一个列表,所以一次性可以将有关这个表的权限全部传给他
user.user_permissions.set(permissions)
user.save()
#删除用户所有权限
# user.user_permissions.clear()

#一次性添加一个权限
# user.user_permissions.add(permissions[0])
# 通过给加星号的方法可以把permissions打散开来,在添加进去
# *[1,2,3] = 1,2,3
# user.user_permissions.add(*permissions)

#删除一个权限
# user.user_permissions.remove(permissions[0])


# 获取该用户的所有权限
# print(user.get_all_permissions())


return HttpResponse('操作权限完成!!!')

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com
目录
主站