이것은 잘 설명되어 있지 않습니다. 클래스 기반보기에서 특성을 True
으로 설정하면 문서에서보기를 제외 할 수 있습니다. 예 :
from rest_framework import viewsets, mixins
class SomeViewSet(mixins...., viewsets.GenericViewSet):
exclude_from_schema = True
[...]
당신이 위의 그림과 같이 속성을 설정하는 효과를 가지고있는 @api_view
장식,에 대한 매개 변수의 존재를 문서화 히트 here을 찾을 수 exclude_from_schema
에 대한 현재 문서를 검색합니다. 속성 자체는 현재 DRF의 문서에서 언급되지 않았습니다. 당신이 조건에 따라보기 을 제외 할 경우 exclude_from_schema
는 계산 된 속성이되도록
, 당신은 @property
장식을 사용할 수 있습니다. 뒤에서 DRF가 뷰의 스키마를 생성해야 할 때 사용자가 문서 페이지를 탐색했을 때 생성 된 Request
개체를 사용하여 클래스를 인스턴스화합니다. 그래서 당신은 문서에 액세스하는 사용자가 인증 여부되었는지 여부를 확인하기 위해 테스트 할 수 있습니다
from rest_framework import viewsets, mixins, permissions
class SomeViewSet(mixins...., viewsets.GenericViewSet):
@property
def exclude_from_schema(self):
return not permissions.IsAuthenticated().has_permission(self.request,
self)
[...]
self.request
사용자가 문서에 대해 물었을 때 생성 된 Request
개체입니다. 스키마를 생성하는 코드가 SomeViewSet
에 설정 될 수있는 permission_classes
특성을 사용하지 않기 때문에 우리는 rest_framework.permissions
이 제공하는 클래스 중 하나를 직접 사용합니다.