(1)set():一次性的为用户添加多个权限,权限可以放在一个列表中。
def user_permission(request):
user = User.objects.get(pk=1)
content_type = ContentType.objects.get_for_model(User)
permissions = Permission.objects.filter(content_type=content_type)
for permission in permissions:
print(permission)
user.user_permissions.set(permissions)
return HttpResponse('为User模型中的某个用户添加一定的权限!')
(2)add():为用户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.objects.get(pk=1)
content_type = ContentType.objects.get_for_model(User)
permissions = Permission.objects.filter(content_type=content_type)
for permission in permissions:
print(permission)
user.user_permissions.remove(permissions[0])
return HttpResponse('为User模型中的某个用户添加一定的权限!')
remove()函数中如果传入列表的的话,一定要在列表前面加上“*”,将列表打散。示例代码如下:
def user_permission(request):
user = User.objects.get(pk=1)
content_type = ContentType.objects.get_for_model(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):
if user.has_perm('login_logout.add_user'):
print("您拥有该权限!")
else:
print("您没有该权限!")
return HttpResponse('为User模型中的某个用户添加一定的权限!')
(6)get_all_permissions()获得所有的权限,示例代码如下:
def user_permission(request):
user = User.objects.get(pk=1)
permissions = user.get_all_permissions()
for permission in permissions:
print(permission)
return HttpResponse('为User模型中的某个用户添加一定的权限!')