🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

django 기본 제공해주는 권한 사용할려면

22.05.07 17:40 작성 조회수 324

0

상기 그림과 같이
django 기본 제공해주는 권한 사용할려면
DjangoModelPermissions를 사용해야되나요?
 
생각보다 많이 어렵네요 

답변 1

답변을 작성해보세요.

0

안녕하세요.

말씀하신 대로 DRF에서 제공하는 Permissions 클래스 중에 장고 기본의 권한 시스템을 활용할려면 DjangoModelPermissions 클래스나 DjangoObjectPermissions 클래스를 사용해볼 수 있습니다.

DjangoModelPermissions는 has_permissions를 구현하였으며, DjangoModelPermissions.perms_map 매핑 대로, 해당 APIView가 호출될 때 request.method의 권한을 체크하게 됩니다. // 아래의 perms_map을 보시면 GET 요청은 빈 리스트로서 별도의 권한 체크를 하지 않습니다. 그러니 DjangoModelPermissions가 지정되어있는 APIView에 권한이 없는 조회 요청도 허용이 됩니다. 

장고 기본의 권한 시스템에서는 기본적으로 각 모델 별로 view/add/change/delete 권한을 사용할 수 있도록 미리 세팅되어져있습니다. 'GET' 요청 시에 view 권한을 지정할려면 ['%(app_label)s.view_%(model_name)s'] 을 지정하시어 처리를 해보실 수도 있습니다.

DjangoObjectPermissions 클래스는 DjangoModelPermissions를 상속받았으며, has_object_permissions를 구현하였습니다. APIView의 get_object가 호출이 될 때, DjangoObjectPermissions.perms_map 매핑대로 request.method의 권한을 체크하게 됩니다.

화이팅입니다. :-)

채널톡 아이콘