объекта
Пример из http://www.django-rest-framework.org/tutorial/4-authentication-and-permissions/#object-level-permissionsДжанго: права доступа на уровне объекта DRY
class IsOwnerOrReadOnly(permissions.BasePermission):
"""
Custom permission to only allow owners of an object to edit it.
"""
def has_object_permission(self, request, view, obj):
# Read permissions are allowed to any request,
# so we'll always allow GET, HEAD or OPTIONS requests.
if request.method in permissions.SAFE_METHODS:
return True
# Write permissions are only allowed to the owner of the snippet.
return obj.owner == request.user
Моя потребность: QuerySet всех объектов пользователь может редактировать
Я хочу иметь Джанго-ОРМ QuerySet который содержит все объекты, которые данный пользователь может редактировать.
Я предполагаю, что я мог бы решить эту проблему путем создания сложного Джанго-ОРМ фильтр (или и различны)
Не DRY
Но это не DRY. Это не СУХОЙ, потому что мне нужно дважды закодировать материал. Один раз в has_object_permission()
и один раз в фильтре django-orm.
Вопрос
Как решить мою потребность (QuerySet всех объектов пользователь может редактировать) без дублирования проверяя разрешения?
Хотя это не тот ответ, который я искал: Спасибо, что подумали об этом. – guettli
Да, это то, что меня беспокоит, и это не подходит для рамки Django REST. Я с нетерпением жду, есть ли у кого-нибудь другой вариант. – Linovia