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)
source to share
@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)
source to share