Я отправляю форму, которая имеет два файла, и делаю ajax post запрос. Но я не могу получить файл в моем представлении Django - PullRequest
0 голосов
/ 30 октября 2018

Я могу сделать почтовый запрос, но не могу получить файлы в моем представлении django.

Это запрос публикации ajax, выполняемый при нажатии кнопки

$("#upload-button").on('click', function() {
 var formdata = new FormData();
 var idElementForFiles = 'file1-to-upload';
 var uploadedFiles = document.getElementById(idElementForFiles);
 formdata.append("metadata_name",uploadedFiles.files[0].name);
 formdata.append("metadata", uploadedFiles.files[0]);
 var idElementForFiles = 'file2-to-upload';
 var uploadedFiles = document.getElementById(idElementForFiles);
 formdata.append("name",uploadedFiles.files[0].name);
 formdata.append("file", uploadedFiles.files[0]);
 var csrfmiddlewaretoken= document.getElementsByName('csrfmiddlewaretoken')    [0].value;
formdata.append("csrfmiddlewaretoken", csrfmiddlewaretoken);
$.ajax({
   type:'POST',
   url: '/submit',
   processData:false,
   contentType:false,
   data : {
       "formdata" :formdata,
       "value":"testing",
   },
   "beforeSend": function(xhr, settings)
   {
     console.log("Before Send");
     $.ajaxSettings.beforeSend(xhr, settings);
   },
   cache: false,
   success: function(data){
       console.log(data);
   },
   error: function(jqXHR, textStatus, errorThrown){alert(errorThrown);}
  });
 });

код для извлечения файлов в моем views.py, который не работает

def save_files(request):
   if request.method == 'POST':
      v=request.POST.get("value")
      fs = FileSystemStorage()
   # get the PDF file and save it
     file1 = request.FILES['file']
     filename1 = file1.name
     fs.save((os.path.join("static","pdf_files",filename1)), file1)

     #fs.save(os.path.join("static","pdf_files",filename1))

     file2 = request.FILES['metadata']
     filename2 = file2.name
     fs.save((os.path.join("static","metadata_files",filename2)), file2)
   return HttpResponse("its working")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...