Проверка, если пользователь родительского объекта == request.user при создании/обновлении дочернего объекта
class Parent(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
class Child(models.Model):
parent = models.ForeignKey(Parent, on_delete=models.CASCADE, related_name='childs')
Я хочу проверить, является ли пользователь родительского объекта пользователем request.user. Хочу понять, как это правильно сделать в DRF.
Вы можете сделать проверку в своем пользовательском классе разрешения, а затем добавить его в список permission_classes
в представлении
разрешения
class IsParentOwnerOrReadOnly(permissions.BasePermission):
def has_permission(self, request, view):
parent_id = int(request.data.get('parent_id'))
parent_instance = Parent.objects.filter(id=parent_id).first()
return (request.method in permissions.SAFE_METHODS or
(parent_instance and request.user == parent_instance.user))
просмотров
class ChildViewSet(viewsets.ModelViewSet):
...
permission_classes = [permissions.IsAuthenticated, IsParentOwnerOrReadOnly]
...