在管理控制檯中,我可以添加組並添加一組與我的模型相關的權限,例如,在Django中,如何以編程方式創建具有權限的組
api | project | Can add project
api | project | Can change project
api | project | Can delete project
如何以編程方式執行此操作。我找不到有關如何做到這一點的任何信息。
我:
from django.contrib.auth.models import Group, Permissions
from django.contrib.contenttypes.models import ContentType
from api.models import Project
new_group, created = Group.objects.get_or_create(name='new_group')
# Code to add permission to group ???
ct = ContentType.objects.get_for_model(Project)
# Now what - Say I want to add 'Can add project' permission to new_group?
UPDATE:謝謝你提供了答案。我能夠用它來計算出我需要的東西。就我而言,我可以做到以下幾點:下面的代碼
from django.contrib.auth.models import Group, Permission
from django.contrib.contenttypes.models import ContentType
from api.models import Project
new_group, created = Group.objects.get_or_create(name='new_group')
# Code to add permission to group ???
ct = ContentType.objects.get_for_model(Project)
# Now what - Say I want to add 'Can add project' permission to new_group?
permission = Permission.objects.create(codename='can_add_project',
name='Can add project',
content_type=ct)
new_group.permissions.add(permission)
你的意思是'new_group.permissions.add(proj_add_perm)' – CpILL