Django-Rest Framework의 클래스 기반 뷰에서 특정 메서드에 권한 클래스를 적용하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com//questions/22010675

  •  21-12-2019
  •  | 
  •  

문제

"POST"가 아닌 "PUT" 방식에 대해서만 권한을 적용하고 싶습니다.

class Signup(APIView):
    def post(self, request, format=None):
        something...something

    @authentication_classes((ExpiringTokenAuthentication,))
    @permission_classes((IsAuthenticated,))
    def put(self, request, format=None):
        something...something
도움이 되었습니까?

해결책

권한 클래스에서 HTTP 메서드를 확인하세요. has_permission 방법을 선택하고 PUT인 경우 수표를 적용합니다.

class ExpiringTokenAuthentication(permissions.BasePermission):

    def has_permission(self, request, view):
        if request.method == 'PUT':
           # do it here


class Signup(APIView):
    permission_classes = (BlacklistPermission,)
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top