如何获取Djang中具有特定权限组的所有用户的列表

2024-05-23 22:44:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我想得到一个具有特定权限组的所有Django auth用户的列表,如下所示:

user_dict = {
    'queryset': User.objects.filter(permisson='blogger')
}

我不知道怎么做。权限组如何保存在用户模型中?


Tags: django用户模型auth权限列表objectsfilter
3条回答

如果要按权限获取用户列表,请查看此变体:

from django.contrib.auth.models import User, Permission
from django.db.models import Q

perm = Permission.objects.get(codename='blogger')  
users = User.objects.filter(Q(groups__permissions=perm) | Q(user_permissions=perm)).distinct()

这是最简单的

from django.contrib.auth import models

group = models.Group.objects.get(name='blogger')
users = group.user_set.all()

我认为对于组权限,权限是针对组存储的,然后用户将组链接到它们。这样你就可以解决用户组关系了。

例如

518$ python manage.py shell

(InteractiveConsole)
>>> from django.contrib.auth.models import User, Group
>>> User.objects.filter(groups__name='monkeys')
[<User: cms>, <User: dewey>]

相关问题 更多 >