如何检索分配给django中的组的所有权限

3 python django permissions django-models

我正在处理一项任务,以检索分配给django中的组的一组权限,我可以使用以下代码获取创建的组,但无法使用它来获取分配给它的权限

来自django.contrib.auth.models导入组,权限

groups = Group.objects.all()为我提供了我创建的所有组

但我不确定如何获得分配给它的权限.

permissions = Permission.objects.all()给了我所有的权限,但我无法弄清楚如何获得分配给特定组的权限

任何指针将不胜感激

7gu*_*uyo 9

要获取当前用户所属的所有组中的所有权限,请使用以下命令:

all_permissions_in_groups = user.get_group_permissions()
Run Code Online (Sandbox Code Playgroud)

要获取与用户相关的所有权限(包括不属于任何组的用户),请执行以下操作:

all_permissions = user.get_all_permissions()
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅Django 文档


els*_*sar 7

Group模型具有ManyToMany与关系Permission模型,这样你就可以做到这一点

for group in Group.objects.all():
    permissions = group.permissions.all()
    # do something with the permissions
Run Code Online (Sandbox Code Playgroud)

  • 不要在循环中进行查询!在这种情况下更好地做这样的事情`group_ids = Group.objects.all().values_list('id',flat = True)Permission.objects.filter(group__id__in = group_ids)`这样你总是只有2个查询. (7认同)