-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
django 기본 제공해주는 권한 사용할려면
22.05.07 17:40 작성 조회수 324
0
![](https://cdn.inflearn.com/public/files/posts/03917ee3-7581-433b-90b5-41ba13f5a81f/ex.png)
답변을 작성해보세요.
0
이진석
지식공유자2022.05.07
안녕하세요.
말씀하신 대로 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의 권한을 체크하게 됩니다.
화이팅입니다. :-)
답변 1