2016-12-19 10 views
0

django-rest-framework로 django-guardian 객체 레벨 권한을 가장 깔끔하게 관리 할 수 ​​있습니다.django-rest-framework로 객체 레벨 권한을 설정하십시오.

POST를 수행 할 때 요청을하는 사용자에게 객체의 읽기 권한 (module.view_object)을 할당하려고합니다.

내 클래스 기반 뷰 :

django-rest-framework documentation에서 설명한 바와 같이
class ObjectList(ListCreateAPIView): 
    queryset = Object.objects.all() 
    serializer_class = ObjectSerializer 
    filter_backends = (DjangoObjectPermissionsFilter,) 
    # MyObjectPermissions inherit from DjangoObjectPermissions and just 
    # add the 'view_model' permission 
    permission_classes = (MyObjectPermissions,) 

    def perform_create(self, serializer): 
    serializer.save(owner=self.request.user) 

, 나는 시리얼에 사용자를 통과하기 위해 perform_create를 오버로드했습니다.

하지만 serializer에서 (guardian.shortcuts.assign_perm을 사용하여) 권한을 어떻게 할당합니까? 수동으로 사용 권한을 할당하려면 save 메서드를 재정의 할 수밖에 없습니까? 이 같은 공통적 인 행동을 관리하기위한 표준 메커니즘이 있습니까?

+1

perform_create()에서 권한을 할당 할 수 있습니다. 'serializer.save()'메소드는 저장되었던 인스턴스를 반환합니다. 당신은 –

+0

답을 받아 들일 것입니다. –

답변

1

ViewSet()의 perform_create() 메소드에서 권한을 할당 할 수 있습니다.