User模型与Permission模型之间是多对多关系,可以从关系的两端为用户设置权限。
通过User对象设置权限,示例代码如下。
from django.contrib.auth.models import Permission
admins=Permission.objects.filter(codename__endswith='permission') #获得权限
user=User.objects.get(username='testuser')
user.user_permissions.set(admins) #设置权限
for p in user.user_permissions.all(): #查看权限
... print(p.codename,p.name)
...
add_permission Can add permission
change_permission Can change permission
delete_permission Can delete permission
view_permission Can view permission
创建新权限,并授权给用户,示例代码如下。
from test.models import person
from django.contrib.contenttypes.models import ContentType
content_type_id=ContentType.objects.get_for_model(person)
p=Permission.objects.create(codename='can_analyse_person',
name='能分析person数据',content_type=content_type_id)
user.user_permissions.add(p) #添加权限
创建新权限,并授权给用户,示例代码如下。
from test.models import person
from django.contrib.contenttypes.models import ContentType
content_type_id=ContentType.objects.get_for_model(person)
p=Permission.objects.create(codename='can_analyse_person',
name='能分析person数据',content_type=content_type_id)
user.user_permissions.add(p) #添加权限