如何在django中动态创建权限?

ope*_*guy 8 python django

现在我可以使用Django组模块创建新组. from django.contrib.auth.models import Group 我可以为组分配权限.例如,我创建了一个新组"HR"

通过Group(name="HR").

现在我想创建像这样的权限

  • can_create_hr
  • can_edit_hr

我应该能够将此权限分配给其他组.

我该怎么做?

Arp*_*nki 7

您也可以直接创建权限并将权限分配给组。只需创建权限并将权限添加到组即可

from django.contrib.auth.models import User, Group, Permission
from django.contrib.contenttypes.models import ContentType

content_type = ContentType.objects.get(app_label='app_name', model='model_name')
permission = Permission.objects.create(codename='can_create_hr',
                                       name='Can create HR',
                                       content_type=content_type) # creating permissions
group = Group.objects.get(name='HR')
group.permissions.add(permission)
Run Code Online (Sandbox Code Playgroud)

如果您想将此权限分配给另一个组,则只需获取权限对象并以相同的方式分配即可。

permission = Permission.objects.get(codename='can_create_hr')
group= Group.objects.get(name='some_name')
group.permissions.add(permission)
Run Code Online (Sandbox Code Playgroud)

您可以在文档中阅读更多相关信息