Как разобрать 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({})

у вас отсутствует .is_valid(raise_exception=True) также

serializer.name не работает, потому что PersonSerializer - это не модель, а Serializer

Это правильный способ:

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