我试图在django rest框架中为我的视图添加权限,在类中为特定的视图添加权限,permissions_classes
就像这样:
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.views import APIView
class ExampleView(APIView):
permission_classes = (IsAuthenticated,)
def get(self, request, format=None):
content = {
'status': 'request was permitted'
}
return Response(content)
我有一个略有不同的观点,我generics.GenericAPIView
试图用这种方式设置权限时使用并且遇到了一个障碍:
from games.models import Game
from games.serializers import GameSerializer
from rest_framework import mixins
from rest_framework import generics
from rest_framework.permissions import IsAuthenticated
class GameList(mixins.ListModelMixin, generics.GenericAPIView):
permission_classes = (IsAuthenticated,)
queryset = Game.objects.all()
serializer_class = GameSerializer
def get(self, request, *args, **kwargs):
return self.list(request, *args, **kwargs)
class GameDetail(mixins.RetrieveModelMixin, generics.GenericAPIView):
queryset = Game.objects.all()
serializer_class = GameSerializer
def get(self, request, *args, **kwargs):
return self.retrieve(request, *args, **kwargs)
以这种方式设置权限时,API只是简单地停止响应。我在这里设置我的权限不正确吗?
发布于 2018-06-11 14:08:53
我的URL设置如下:
urlpatterns = [
url(r'^games/$', views.GameList.as_view()),
url(r'^games/(?P<pk>[0-9]+)/$', views.GameDetail.as_view()),
]
改为:
from django.conf.urls import url
from games import views
urlpatterns = [
url(r'^games', views.GameList.as_view()),
url(r'^games/(?P<pk>[0-9]+)/$', views.GameDetail.as_view()),
]
https://stackoverflow.com/questions/-100005290
复制相似问题