본문 바로가기
ERROR

퍼미션 논리연산시, Error raise

by 코드뭉치 2023. 6. 26.
class IsSeller(BasePermission):
    message = "No Seller object related to User."

    def has_permission(self, request, view):
        if hasattr(request.user, "user_seller"):
            return True
        else:
            raise PermissionDenied(detail="No Seller object related to User.")
        return hasattr(request.user, "user_seller")

 

커스텀 퍼미션을 만들어주고,

permission_classes = [IsSeller | IsReadOnly]


퍼미션 클래스에서 논리 연산자 실행을 했는데, 

else문에서 PermissionDenied를 raise하고 있었기 때문에,

GET요청이 들어와도 코드가 제대로 작동하지 않았음.(논리연산자 실행이 불가능)


class IsSeller(BasePermission):
    message = "No Seller object related to User."

    def has_permission(self, request, view):
        return hasattr(request.user, "user_seller")


True, False 값만 리턴하도록 수정.

 

댓글