Django-Rest Framework의 클래스 기반 뷰에서 특정 메서드에 권한 클래스를 적용하는 방법은 무엇입니까?
-
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,)
제휴하지 않습니다 StackOverflow