首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Django REST框架GenericAPIView权限

Django REST框架GenericAPIView权限
EN

Stack Overflow用户
提问于 2018-06-11 04:55:17
回答 1查看 0关注 0票数 0

我试图在django rest框架中为我的视图添加权限,在类中为特定的视图添加权限,permissions_classes就像这样:

代码语言:javascript
复制
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试图用这种方式设置权限时使用并且遇到了一个障碍:

代码语言:javascript
复制
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只是简单地停止响应。我在这里设置我的权限不正确吗?

EN

回答 1

Stack Overflow用户

发布于 2018-06-11 14:08:53

我的URL设置如下:

代码语言:txt
复制
urlpatterns = [
    url(r'^games/$', views.GameList.as_view()),
    url(r'^games/(?P<pk>[0-9]+)/$', views.GameDetail.as_view()),
]

改为:

代码语言:txt
复制
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()),
]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100005290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档