Django DRF에서
GET LIST하면 로그인 안해도 보여주고 싶고, 나머지 함수는 로그인 해야 작동하게 하고 싶은데....
요런식으로 쓰면 함수 밑에다가 정의를 하든 어찌하든 다 로그인 후에 가능하게끔 설정이 된다.
물론 함수를 일일이 나눠서 GET은 permission_classes를 빼놓고 해도 되지만,
필자는 class안에서의 permission_classes를 부분적으로 주는 방법을 다뤄보려 한다.
장고 공식문서: https://www.django-rest-framework.org/api-guide/permissions/
위에 대충 해석해보면 클래스나 함수를 쓸때, settings.py 의 default값이 아닌 그 클래스나 함수에 맞게끔 permission을 설정하고 싶을때를 말함.
그럴때 BasePermission이란 상속값을 받아 쓰면 된다고 설명이 되어있음.
코드를 잠깐 뜯어보자면,
BasePermission 클래스는 요런식으로 되어있는데
우리 코드에서 요런식으로 바꾸면 SAFE_METHODS에 해당하는 것도 True로 반환해주는 걸 볼수 있음
SAFE_METHODS를 보면
요런식으로 구성 됨
대충 GET HEAD OPTIONS로 들어오는 요청이면 허락해준다 이말인것 같음.
원래 IsAuthenticated라 되어있으면 로그인 안된 유저는 다 밴인데, ReadOnly를 |로 받기 때문에 (GET, HEAD, OPTIONS)방식으로 들어오는 것도 허락해주는것 같음.
자세한건 공식문서를 찾아서 댓글을 달아주면 감사를 드립니다.
틀린것 지적 언제나 환영~
'Django' 카테고리의 다른 글
django admin 커스터마이징 시 유의점 (0) | 2024.10.01 |
---|---|
Django MTM field 단점 (0) | 2024.09.23 |
Django 서버 배포하기 (4) | 2024.09.03 |
외부 API 연동하기 (1) | 2024.09.01 |
Redis (1) | 2024.08.30 |