2017-01-25 7 views
0

各メソッドでユーザーのアクセス許可をチェックしたいので、コールがメソッドハンドラに届く前にアクセス許可がチェックされている必要があります(DRY)。ドキュメントinitialによれば、これを行うことができますが、これは良い方法ですか?DRF - ユーザーのアクセス許可を確認する

class StorageDetail(APIView): 

    def initial(self, request, *args, **kwargs): 
     if not has_permission(request): 
      return Response(status=status.HTTP_403_FORBIDDEN) 

     super(StorageDetail, self).initial(request, *args, **kwargs) 

    def post(self, request, storage_id): 
     # .... 

    def put(self, request, storage_id): 
     # ... 

答えて

0

いいえ、これはいい方法ではありません。 documentationによれば、Permissionクラスを使用する方が良いです。

from rest_framework import permissions 

class CustomerAccessPermission(permissions.BasePermission): 
    message = 'Adding customers not allowed.' 

    def has_permission(self, request, view): 
     return True 


class ExampleView(APIView): 
    permission_classes = (IsAuthenticated, CustomerAccessPermission,) 
関連する問題