5

ドキュメント アプリ用のクラス ベースの API を作成していますが、APIView の投稿とパッチの定義に特定のアクセス許可を追加したいと考えています。例えば、

class DocumentList(APIView):

    def get(self,request,format=None):
         ... blah

    def post(self,request,format=None):
        only allow administrators to create new documents 
        ... blah
4

2 に答える 2

1

これが私がしたことです。ドキュメントからの参照

プロジェクトの権限クラスを作成しました

project/permissions.py

from rest_framework import permissions

class IsAuthenticatedOrReadOnly(permissions.BasePermission):

    def has_object_permission(self, request, view, obj):
        # Read permission - always allow for GET request
        if request.method in permissions.SAFE_METHODS:
            return True

        # Write permissions - only if authenticated
        return request.user and request.user.is_authenticated()

ビューでこの PermissionClass を使用します

@permission_classes((IsAuthenticatedOrReadOnly, ))
class ShopViewSet(viewsets.ModelViewSet):
     queryset = Shop.objects.all()
     serializer_class = ShopSerializer
于 2017-01-01T09:46:43.803 に答える