Django-rest rest показывает "недопустимый словарь ожидаемых данных, но получил Tuple" при отправке файла из React Js - PullRequest
0 голосов
/ 10 апреля 2019

Попытка передать файл из ReactJS в Django-Rest с помощью пост-запроса выборки.

Я пытался в течение нескольких часов передавать файл из django, чтобы среагировать. Но, получая ошибки, сначала я сделал файл pdf изатем передать запрос на выборку в django, но получил ошибку, я сделал много изменений, но всегда получал ошибку типа «файл не отправлен», затем вносил изменения в мой код django, теперь я получаю ошибку »[« Неверные данные.Ожидается словарь, но есть кортеж. "]".Вот мой код ниже:

REACTCODE:

   genPDF=(evt)=>{

    evt.preventDefault();
   html2canvas(document.getElementById("pdfid")).then(canvas=>{
       let img=canvas.toDataURL('img/png');
       let doc=new JsPDF();
       doc.addImage(img,'JPEG',30,30);
       doc.output('blob');
       //doc.save('test.pdf');
       let formdata=new FormData();
       formdata.append('file',doc);
       this.postpdf(formdata)
   });

};

postpdf=(formdata)=>{
    console.log("Form data");
    console.log(payload);
    fetch(`http://127.0.0.1:8000/chauffeur/pdf_upload/`,
        {
            method: 'POST',
            body:formdata,
        }
    ).then(response => response.json()).catch(error => console.error('Error:', error));
};

DjangoCode

Модели:

    class Pdf(models.Model):
      file=models.FileField(null=False,blank=False)

Сериализатор :

      class PdfSerializer(serializers.ModelSerializer):

      class Meta:
       model = Pdf
       fields = ['file']

Views.py :

 class PdfUpload(APIView):

      def get(self, request):
         return Response([PdfSerializer(file).data for file in Pdf.objects.all()])

  def post(self,request):
    payload=(request.data,request.FILES)
    serializer=PdfSerializer(data=payload)

    if serializer.is_valid():
        serializer.save()
        return Response("File Saved in Backend",status=status.HTTP_201_CREATED)
    return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST)

Я не могу его отсортироватьВ чем проблема, я делаю неправильный способ отправить файл в Django?или есть проблема в моем почтовом запросе?. Пожалуйста, нужны предложения

...