Django rest framework request.data throws error

I am using Django Rest Framework. As in my opinion, an error occurs as request instance has no attribute 'data'

I tried a lot and found nothing. Should I add any middleware or something else? How DRF retrieves data from .POST request and request.GET. My view is function based.

def list(request, format=None):
    if request.method == 'POST':
        serializer = CustomerSerializer(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)

      

+3


source to share


1 answer


@api_view

decorator missing.To get request.data

in DRF either you have to call decorator @api_view

or go from class APIView

if you are using function based view use api_view decorator

from rest_framework.decorators import api_view

@api_view
def list(request):
    if request.method == 'POST':
        serializer = CustomerSerializer(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)

      



For a class based view from APIView

from rest_framework.views import APIView

class List(APIView):

    def post(self, request):
        serializer = CustomerSerializer(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)

      

: DRF Request

+4


source







All Articles