Как разобрать api запрос на определенную модель?
Я новичок в python, я пытаюсь разобрать api запрос к определенной модели, так что как исправить нижеприведенный код?
class PersonSerializer(serializers.Serializer):
name = serializers.CharField()
class APIJustTest(APIView):
parser_classes = (JSONParser,)
@swagger_auto_schema(request_body=PersonSerializer)
def post(self, request, *args, **krgs):
serializer = PersonSerializer(data=request.data)
serializer.is_valid()
nameOK = serializer['name'].value #dictionary works but I prefer defined model
nameError = serializer.name #this is defined model but will cause server error
return JsonResponse({})
you have missing .is_valid(raise_exception=True)
also
serializer.name
doesn't work because PersonSerializer
is not a model but a Serializer
This is the right way :
class PersonSerializer(serializers.Serializer):
name = serializers.CharField()
class APIJustTest(APIView):
parser_classes = (JSONParser,)
@swagger_auto_schema(request_body=PersonSerializer)
def post(self, request, *args, **kwargs):
serializer = PersonSerializer(data=request.data)
serializer.is_valid(raise_exception=True) # it will raise error if invalid
nameOK = serializer.validated_data['name'] # this is correct way to access parsed data
return Response({"message": f"Hello, {nameOK}!"})