2016-09-06 8 views
2

보기 집합에 대한 사용자 지정 사용 권한을 만드는 방법을 찾으려고합니다. 임은 다음과 같이 뭔가를해야만 구현하려는 :보기 집합에 대한 사용자 지정 사용 권한

class ActivityViewSet(viewsets.ModelViewSet): 
    queryset = Activity.objects.all() 
    serializer_class = ActivitySerializer 
    if request.method == 'PUT': 
     permission_classes = (permissions.IsOwner) 
    elif request.method == 'LIST': 
     permission_classes = (permissions.IsAdmin) 
    else : 
     permission_classes = (permissions.AllowAny) 

IE는 : 방법으로 권한을 정렬. (위의 코드가 작동하지 않는 "요청"원인을 인정하지 않음)

설명서의 "사용자 지정 권한"섹션에서 사용할 수 없지만 아마도 눈이 멀었습니다. (무시 BasePermission 어떻게 사람 어디????)

감사합니다 :)

답변

4

Viewsets이 action 사용에 대한 HTTP 동사를 결정하고 당신이 그것을 대체 할 수 있도록 권한, get_permissions 방법에서 호출 :

class ActivityViewSet(viewsets.ModelViewSet): 
    queryset = Activity.objects.all() 
    serializer_class = ActivitySerializer 

    def get_permissions(self): 
     if self.action == 'update': 
      return IsOwner() 
     elif self.action == 'list': 
      return IsAdminUser() 
     else : 
      return AllowAny() 
+0

는 놀라운, 고마워요 :) – idik

+0

@ 님을 환영합니다 :) –

+0

사실, 약간의 문제가있었습니다. NameError를 가져 오는 IsAdminUser()가 인식되지 않습니다. – idik