通过post方法限制访问api视图装饰器Django

2024-06-16 10:01:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个名为“专家”的用户组,我也安装了Django的rest_框架。我可以通过api访问我的条目和所有条目的注释。好吧,我应该把通过api的post操作限制为注释。此操作仅对专家用户可用。我有以下代码视图.py(我刚刚发布了重要代码):

from .serializers import FeedbackSerializer
class FeedbackViewSet(viewsets.ModelViewSet):
            """
            API endpoint that allows Items to be viewed or edited.
            """
            queryset = Feedback.objects.all().order_by('user')
            serializer_class = FeedbackSerializer
            def create(self, request, *args, **kwargs):
               self.permission_classes = ['IsAdminUser',]
               return super(FeedbackViewSet, self).create(self, request, *args, **kwargs)

我在查看关于restfulapi的官方文档,但是我不明白如何用(@api_view('POST'),@permission_classes((IsAdminUser, )))重写通过api调用的方法来显示所有注释


Tags: 代码selfapirequestcreateargskwargsclass
1条回答
网友
1楼 · 发布于 2024-06-16 10:01:23
class MyViewset(ModelViewSet):
    queryset = MyThing.objects.all()
    serializer_class = MyThingSerializer

    def update(self, request, pk=None, **kwargs):
        self.permission_classes = [CustomPermission,]

        return super(MyViewset, self).update(request, pk, **kwargs)

相关问题 更多 >