Как передать содержимое файла в сериализатор? - PullRequest
1 голос
/ 07 октября 2019

Я новичок в Джанго. Мне нужно реализовать два варианта POST;один из параметров URL, а другой из данных файла.

например, curl -X POST localhost:8000/api/test?key=value ИЛИ curl -X POST -F "file=@myfile.json" localhost:8000/api/test

Я проверил ниже, но не смог.

class TestEntryView(ListCreateAPIView):
    queryset = TestEntry.objects.all().order_by('-id')
    parser_classes = (MultiPartParser, FormParser,)
    serializer_class = TestEntrySerializer

    def perform_create(self, serializer):
        if self.request.FILES.get('file'):
            file_obj = request.FILES['file']
            filename = '/api/mytest/.temp/testfile'
            with open(filename, 'wb+') as temp_file:
                for chunk in file_obj.chunks():
                    temp_file.write(chunk)
            with open(filename, 'r') as temp_file:
                data = json.load(temp_file)
                serializer.save(**data)
        serializer.save()

=>perform_create() не вызывается из-за сбоя при проверке поля. Есть ли рекомендуемый способ для этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...