В моем проекте используется пообъектные права доступа.
Для этого я использую django-guardian
Все хорошо, но не работает функция get_objects_for_user()
qs - какой-то queryset
my_usr - какой-то пользователь
In [1]: qs
Out[1]: [<SomeModel: obj1>, <SomeModel: obj2>]
In [2]: my_usr.has_perm('somename.change_somemodel', qs[0])
Out[2]: True
In [3]: my_usr.has_perm('somename.change_somemodel', qs[1])
Out[3]: False
Тут все вроде логично. В админке я назначил права change_somemodel только первому объекту
In [4]: get_objects_for_user(my_usr, 'somename.change_somemodel', qs)
Out[4]: [<SomeModel: obj1>, <SomeModel: obj2>]
Почему он выводит оба объекта? Ведь на второй у него нет прав????
З.Ы. Такой костыль отрабатывает как положено, но требует доп. расходов по производительности):
In [5]: [x for x in qs if my_usr.has_perm('somename.change_somemodel', x)]
Out[5]: [<SomeModel: obj1>]
Хотелось бы такого же поведения для штатной функции get_objects_for_user