Загрузка сгенерированного PDF файла из React в Django (без <input type="file">)

Я пытаюсь загрузить сгенерированный PDF файл из React в Django, но он не работает. Я протестировал конечную точку django с помощью postman, и она работает правильно. Я знаю, как сделать это с помощью <input type="file">, но в этом случае пользователь не предоставляет никаких данных, потому что файл генерируется как PDF с помощью React.

Вот мой Django View:

class quizPdfView(APIView):
    parser_classes = [MultiPartParser, FormParser]
    def post(self,request):
        try:
            print(request.data)
            quizPDF.objects.create(user=request.user,pdf=request.data['pdf'])
            return Response(status=status.HTTP_200_OK)
        except Exception as e:
            print(e)
            return Response(status=status.HTTP_400_BAD_REQUEST)

А вот как я отправляю данные из React (файл, который я отправляю, просто для теста, позже я изменю его на тот, который должен быть отправлен):

 const config = { header: {'Content-Type': 'multipart/form-data'} };
 const URL = 'http://127.0.0.1:8000/api/uploadpdf/';
 let formData = new FormData();

 var doc = new jsPDF();
 doc.text(20, 20, 'Hello world!');
 doc.text(20, 30, 'This is client-side Javascript, pumping out a PDF.');
 doc.addPage();
 doc.text(20, 20, 'Do you like that?');

 formData.append('pdf',doc)

 axios
 .post(URL,formData,config)
 .then((res) => {
     console.log(res.status)
  })
  .catch((err) => console.log(err));

И, когда я отправляю запрос, я получаю эту ошибку в django:

<QueryDict: {'pdf': ['[object Object]']}>
Cannot assign "<django.contrib.auth.models.AnonymousUser object at 0x7f47fe90c6d0>": "quizPDF.user" must be a "User" instance.
Bad Request: /api/uploadpdf/
[17/Sep/2021 06:54:43] "POST /api/uploadpdf/ HTTP/1.1" 400 0

Я не знаю, почему файл отправляется как <QueryDict: {'pdf': ['[object Object]']}> , а не как <QueryDict: {'pdf': [<InMemoryUploadedFile: EXAMPLE.pdf (application/pdf)>]}> (это вывод print(request.data), когда я отправляю файл с помощью Postman).

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