【发布时间】:2016-09-24 08:06:45
【问题描述】:
我创建了一个名为“Experts”的用户组,并且我也安装了 Django 的 rest_framework。我可以通过 api 访问我的项目和所有项目的 cmets。好吧,我应该将通过 api 的 post 操作限制为 cmets。此操作仅对专家的用户可用。我的views.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)
我正在查看有关restful api的官方文档,但我不明白如何使用(@api_view('POST'),@permission_classes((IsAdminUser, )))覆盖通过api调用的方法以显示所有cmets
【问题讨论】:
-
ViewSet 有多个动作,你应该覆盖你需要的那个:django-rest-framework.org/api-guide/viewsets 也许你只做一个 POST 端点会更容易,而不是声明一堆不需要的 ViewSet 代码。
-
嗯,但是我应该在这个类中编写FeedbackViewSet的create方法吗?或者有什么办法可以覆盖它?对不起,如果这是一个愚蠢的问题,但我是 Django 的新手
标签: python django django-rest-framework restful-authentication