Не уверен, если это лучший способ, но я делаю это, переопределяя get_queryset
def get_queryset(self):
queryset = YOUR_MODEL.objects.filter(user_id=self.request.user.id)
return queryset
Делая это, используя класс разрешения
class IsInUserHierarchy(permissons.BasePermission):
def has_permission(self, request, view):
return bool(isinstance(request.user, UserClassHierarchy))
Некоторые пояснения.IsInUserHierarchy
класс очень похож на IsAdminUser
.Он проверяет, находится ли request.user в требуемом классе (импорт UserClassHierarchy
из моделей), используя простой метод python isinstance ()