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模型中的某个用户添加一定的权限!')
始于才华,忠于颜值;每件事情在成功之前,看起来都是天方夜谭。一无所有,就是无所不能。