You want to create a custom APIView that accepts a POST request with JSON data containing a number, doubles it, and returns the result with status 200. Which code snippet correctly implements this?
hard📝 Application Q15 of 15
Django - REST Framework Basics
You want to create a custom APIView that accepts a POST request with JSON data containing a number, doubles it, and returns the result with status 200. Which code snippet correctly implements this?
Aclass DoubleView(APIView):
def get(self, request):
num = request.data.get('number')
result = num * 2
return Response({'result': result}, status=200)
Bclass DoubleView(APIView):
def post(self, request):
num = request.data['number']
result = num + num
return Response({'result': result}, status=201)
Cclass DoubleView(APIView):
def post(self, request):
num = request.data.get('number')
result = num * 2
return Response({'result': result}, status=200)
Dclass DoubleView(APIView):
def post(self):
num = request.data.get('number')
result = num * 2
return Response({'result': result}, status=200)
Step-by-Step Solution
Solution:
Step 1: Check method and parameters
POST method must be defined with self and request parameters. class DoubleView(APIView):
def post(self, request):
num = request.data.get('number')
result = num * 2
return Response({'result': result}, status=200) correctly defines post(self, request).
Step 2: Validate data access and response
class DoubleView(APIView):
def post(self, request):
num = request.data.get('number')
result = num * 2
return Response({'result': result}, status=200) safely uses request.data.get('number') and multiplies by 2. It returns Response with status=200 as required.
Step 3: Review other options
class DoubleView(APIView):
def post(self, request):
num = request.data['number']
result = num + num
return Response({'result': result}, status=201) uses status=201 (wrong status). class DoubleView(APIView):
def get(self, request):
num = request.data.get('number')
result = num * 2
return Response({'result': result}, status=200) uses get method instead of post. class DoubleView(APIView):
def post(self):
num = request.data.get('number')
result = num * 2
return Response({'result': result}, status=200) misses request parameter in post method.
Final Answer:
class DoubleView(APIView):
def post(self, request):
num = request.data.get('number')
result = num * 2
return Response({'result': result}, status=200) -> Option C
Quick Check:
POST with request param, multiply, status=200 [OK]
Quick Trick:POST method with request param, multiply, return status 200 [OK]
Common Mistakes:
MISTAKES
Using get method instead of post
Missing request parameter in method
Returning wrong status code
Accessing request.data incorrectly
Master "REST Framework Basics" in Django
9 interactive learning modes - each teaches the same concept differently