Ограничения 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]
...