Как разобрать 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}!"})
Вернуться на верх