ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Django Rest Framework Permissions, DRF 권한
    카테고리 없음 2021. 9. 8. 22:51
    SMALL

    Movie 모델과 Review 모델이 있을 때, Review Object는 작성자만 수정이 가능하고 나머지는 볼 수만 있게 한다고 했을 때 권한을 어떻게 해야 될까?


    api 폴더에 permissions.py를 아래와 같이 만든다.
    SAFE_METHOD에는 ('GET', 'HEAD', 'OPTIONS') 값이 들어있다.

    from rest_framework import permissions
    
    
    class IsReviewAuthorOrReadOnly(permissions.BasePermission):
        def has_object_permission(self, request, view, obj):
            if request.method in permissions.SAFE_METHODS:
                return True
            return obj.author == request.user

    moviews/api/views.py 에 아래와 같이 permission_classes 를 넣는다 

    from movies.api.permissions import IsReviewAuthorOrReadOnly
    
    class ReviewCreateAPIView(generics.CreateAPIView):
        queryset = Review.objects.all()
        serializer_class = ReviewSerializer
        permission_classes = [permissions.IsAuthenticatedOrReadOnly]

    이렇게 했을 경우, 작성자는 PUT을 할 수 있지만 나머지는 Review를 GET만 할 수 있다.

     

    위를 잘 응용하면 다양한 권한 설정이 가능ㅎ~ 

     

    BIG

    댓글

Designed by Tistory.