Ограничения Django Rest

Есть модель Post,как сделать, чтобы в ModelViewSet выставить ограничение: Смотреть могут все, создавать новую запись только авторизированные пользователи, обновлять и удалять - автор?

Вам нужно разграничить права доступа при помощи permissions.

В этом модуле прописываете нужные пермишены:

from rest_framework.permissions import BasePermission


class IsOwner(BasePermission):
    def has_object_permission(self, request, view, obj):
        return obj.user_id == request.user.id

В нужной вьюхе прописывайте права те, которые нужны. Проверку аутентификации берем из стандартной библиотеки DRF:

from rest_framework.permissions import IsAuthenticated
from backend.permissions import IsOwner

class PostListViewset(viewsets.ModelViewSet):
    permission_classes = [IsAuthenticated]
    ...

class PostDetailViewset(viewsets.ModelViewSet):
    permission_classes = [IsAuthenticated, IsOwner]
    ...
Вернуться на верх