【发布时间】:2014-07-27 00:45:22
【问题描述】:
在 django-guardian 中,我怎样才能让用户拥有任何权限的所有对象(也可以通过组)。有一个shortcut to get all users having any permission over an object,但我正在搜索给定用户拥有任何权限的所有对象。
【问题讨论】:
在 django-guardian 中,我怎样才能让用户拥有任何权限的所有对象(也可以通过组)。有一个shortcut to get all users having any permission over an object,但我正在搜索给定用户拥有任何权限的所有对象。
【问题讨论】:
>>> 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>]
【讨论】:
get_objects_for_user的代码,这似乎效率很低?