Как загрузить несколько файлов и использовать charfields одновременно в django rest framework?

Я довольно новичок в этой области, поэтому я постараюсь объяснить это наилучшим образом.

Я пытаюсь загрузить два разных необязательных файла (это означает, что загружать их не обязательно), а также иметь два необязательных поля CharFields в качестве входных данных в одном и том же методе API.

Я могу лучше объяснить это, показав, как выглядит мой views.py, мой serializers.py и как я хотел бы иметь возможность ввести его в postman.

С помощью этого я могу загрузить файл, но после этого у меня возникает ошибка return None as HttpResponse, потому что код не может быть продолжен.

views.py

class FileUploadView(APIView):
    parser_classes = (FileUploadParser,)

    @swagger_auto_schema(request_body=FileSerializer,
                         responses={
                             HTTP_200_OK: PostSuccessResponseSerializer,
                             HTTP_400_BAD_REQUEST: PostErrorResponseSerializer
                         }
                         )
    def post(self, request):
        # Upload two different OPTIONAL files
        file_1 = request.data.get('file_1', None)
        file_2 = request.data.get('file_2', None)

        # CharField optional inputs
        user_input = request.data.get('user_input') or ''
        foo_char = request.data.get('model_filename') or ''

        # Do something with the files
        ...

        # do something with the CharFields inputs
        ...

        return Response(f'Success!', status=HTTP_200_OK)

serializer.py

class FileSerializer(serializers.Serializer):
    file = serializers.FileField(allow_empty_file=False, use_url=False)
    user_input = serializers.CharField()
    foo_char = serializers.CharField()

Почтальон

postman_sample

Вернуться на верх