django - 在 django-guardian 中,如何获取用户拥有任何权限的所有对象

标签 django django-guardian

在 django-guardian 中,如何获取用户拥有任何权限的所有对象(也通过组)。有一个shortcut to get all users having any permission over an object ,但我正在搜索给定用户拥有任何权限的所有对象。

最佳答案

get_objects_for_user()

>>> from guardian.shortcuts import get_objects_for_user
>>> joe = User.objects.get(username='joe')
>>> get_objects_for_user(joe, 'auth.change_group')
[]

>>> from guardian.shortcuts import assign_perm
>>> group = Group.objects.create('some group')
>>> assign_perm('auth.change_group', joe, group)
>>> get_objects_for_user(joe, 'auth.change_group')
[<Group some group>]

对于任何权限,您可以自己在列表中键入代号,或使用 get_perms_for_model() .

>>> group_perms = [perm.codename for perm in get_perms_for_model(Group)]
>>> get_objects_for_user(joe, group_perms, klass=Group, any_perm=True)
[<Group some group>]

关于django - 在 django-guardian 中,如何获取用户拥有任何权限的所有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24976847/

相关文章:

python - Django 中多个模型的原始查询和行级访问控制

django - 当我将 Django 应用程序部署到 Heroku 时,为什么 collectstatic 不会自动运行?

python - 在 Mac OS X 上安装 libpq-dev

python - 立即加载 django 自定义模板标签

python - Django -- User.DoesNotExist 不存在?

Django 在保存对象时/之后授予权限

django - 如何在 Django Guardian 中为用户定义默认权限?

Python Django(守护者): editing data depending on an m2m-field in my model

django - 在 Django 中与其他用户共享对象

python - 乌鸦不向 Sentry 报告异常