2014-04-08 8 views
6

.queryset` özelliği olmayan bir görünümde DjangoModelPermissions uygulanamıyor: Daha Sonra ben gerek yoktu fark AncakAssertionError: `var .model` veya` Ben daha önce benim proje üzerinde bu görüşü vardı

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) 

QuerySet ve bu yüzden birlikte kalmaya ilişkin hattı ve izni ve Sorgu Kümesi silindi:

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) 

Ben bu hata mesaj almak kodunu çalıştırmayı denerseniz:

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

Kişisel QuerySet olmalıdır 'QuerySet = Bag.objects.all()' – karthikr

+0

Ben bir yazım hatası olduğunu düşünüyorum: bir '' serializer.save 'sonra()' o @Sohan –

+0

tamam çünkü Altında – henry12

cevap

9

Bunun nedeni, izin belgelerini kaldırmanızdır. kullanabilirsiniz permission_classes = (IsAuthenticatedOrReadOnly,)

İlgili konular