【问题标题】:AssertionError: Cannot apply DjangoModelPermissions on a view that does not have `.model` or `.queryset` propertyAssertionError:无法在没有 `.model` 或 `.queryset` 属性的视图上应用 DjangoModelPermissions
【发布时间】:2014-05-21 17:10:46
【问题描述】:

我之前对我的项目有这样的看法:

from rest_framework import status
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.parsers import JSONParser
from rest_framework.permissions import IsAuthenticated


from rest_api.my_app.serializer import MySerializer
from my_project.models import Bag


class MyView(APIView):
    parser_classes = (JSONParser,)
    queryset = Bag.objects.all()
    permission_classes = (IsAuthenticated,)


    @staticmethod
    def post(self, request, format=None):
        serializer = MySerializer(data=request.DATA)
        if serializer.is_valid():
            serializer.save(),
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

但是我后来意识到我不需要查询集,所以我删除了那行和 保留的权限和查询集:

from rest_framework import status
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.parsers import JSONParser


from rest_api.my_app.serializer import MySerializer


class MyView(APIView):
    parser_classes = (JSONParser,)
    @staticmethod
    def post(self, request, format=None):
        serializer = MySerializer(data=request.DATA)
        if serializer.is_valid():
            serializer.save(),
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

如果我尝试运行代码,我会收到以下错误消息:

AssertionError: Cannot apply DjangoModelPermissions on a view that does not have     `.model` or `.queryset` property.'

【问题讨论】:

标签: django permissions django-rest-framework


【解决方案1】:

这是因为您删除了权限类。 您可以使用 permission_classes = (IsAuthenticatedOrReadOnly,)

【讨论】:

    猜你喜欢
    • 2015-09-28
    • 2016-07-26
    • 2017-01-12
    • 2018-12-03
    • 2017-04-04
    • 1970-01-01
    • 2020-10-06
    • 1970-01-01
    • 2020-10-31
    相关资源
    最近更新 更多