I am using Django Rest Framework. Both in my view, there raises error like request instance has no attribute 'data' I tried a lot and didn't find anything. Do I have to add any middleware or something? How DRF retrieves data from request.POST and request.GET. My view is function based one.
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)
@api_view decorator missing.To get request.data in DRF, either you have to use the decorator @api_view or extend from the APIView class
if you are using class-based view.
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 class based view extend 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)
documentation : DRF request
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With