Django抛出{“ non_field_errors”:[“无效数据。应该是字典,但有元组。”]} React JS

问题描述 投票:0回答:1

[尝试通过获取帖子从React发送文件到Django的其余部分,但是得到了这个Django的响应显示:

{“ non_field_errors”:[“无效的数据。应该是字典,但是有元组。”]}

我正在尝试将pdf生成的文件发送到django,但是无法执行,首先我创建pdf,然后通过获取邮寄请求发送

ReactJS

 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);

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

       //this.postpdf(formdata)
   });

};

DJANGO

class PdfUpload(APIView):

parser_classes = (MultiPartParser, FormParser,)

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)

SERIALIZER.PY

class PdfSerializer(serializers.ModelSerializer):

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

我发送正确的文件是因为它生成了PDF,然后通过获取请求将其发送,或者在Django端的formdata中可能有问题,因为它期望字典,但是formdata充当元组?

reactjs django-rest-framework jspdf fetch-api form-data
1个回答
0
投票

尝试一下:

formdata.append({'file':doc}); 

代替

formdata.append('file',doc);
© www.soinside.com 2019 - 2024. All rights reserved.