Django의viewsets.ModelViewSet 재작성 권한
7230 단어 django
class QuestionnaireViewSet(viewsets.ModelViewSet):
queryset = Questionnaire.objects.filter()
serializer_class = QuestionnaireSerializer
filter_backends = (filters.DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter)
filter_fields = ("enterprise_id", "owners__id", "category_id", "owner_user_id")
# permission_classes_by_action , get_permissions
permission_classes_by_action = {'default': [StarOrStaffPermission],
'update': [StarOrStaffPermission],
'destroy': [StarOrStaffPermission],
'questionnaire_question_list': [],
'list': [],
'user_questionnaire_list': []
}
# get_permissions
def get_permissions(self):
try:
# return permission_classes depending on `action`
return [permission() for permission in self.permission_classes_by_action[self.action]]
except KeyError:
#
# action is not set return default permission_classes
return [permission() for permission in self.permission_classes_by_action['default']]
get 보세요.permissions () 소스:
마찬가지로 반환 권한 목록
def get_permissions(self):
"""
Instantiates and returns the list of permissions that this view requires.
"""
return [permission() for permission in self.permission_classes]
ModelViewSet의 모델 혼입 클래스가 공식 문서를 구성하는 것을 다시 한 번 보십시오.https://www.django-rest-framework.org/api-guide/generic-views/#mixins
class ModelViewSet(mixins.CreateModelMixin,
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
mixins.ListModelMixin,
GenericViewSet):
"""
A viewset that provides default `create()`, `retrieve()`, `update()`,
`partial_update()`, `destroy()` and `list()` actions.
"""
pass
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.