Как отправить файл с помощью react и django rest

#javascript #python #django-rest-framework #multipartform-data

#javascript #python #django-rest-framework #multipartform-данные

Вопрос:

Как я могу отправить файл изображения из react в django.

Я новичок в react и django, в настоящее время я успешно отправляю и получаю данные с / на конечные точки, теперь я хочу отправить файл изображения или любой другой файл из react в django или получить файл изображения из django в react.Я написал некоторый код, но он не работает должным образом, и мне довольно сложно отправить файл, я исследовал, но не получил никакой полезной ссылки.Пожалуйста, кто-нибудь может поделиться ссылкой, по которой я могу лучше понять, как это работает.Ниже приведена моя попытка:

ЧАСТЬ РЕАКЦИИ

        let doc=new JsPDF();
       doc.addImage(img,'JPEG',30,30);
       //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));
 

ЧАСТЬ 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)
    print("Hello")
    print(payload)
    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)
 

Но я получаю слишком много ошибок из приведенного выше кода, например, нет отправленного файла или ожидаемого dict, но получаю список, может кто-нибудь исправить приведенный выше код или может поделиться полезными ссылками, откуда я могу лучше понять.Заранее спасибо!

Ответ №1:

Если имя объекта в вашем models.py является ли, например, PdfModel писать так:

 from django.core.files import File

def post(self, request):
    my_file = File(request.data.get('file'))
    new_pdf_file = PdfModel.objects.create(
         field1=request.data.get('field1'),
         field2=request.data.get('field2'), 
         field3=my_file )
    new_pdf_file.save()
    return Response({"something","something")