Python DJANGO-AJAX request.files为空

Python DJANGO-AJAX request.files为空,python,ajax,django,Python,Ajax,Django,这个问题夺去了我整个周末的生命,所以感谢所有能给我的帮助 我有一个按类别上传报告的表单。在没有ajax的情况下提交表单是没有问题的。但是当我切换到ajax时,ajax不会将文件数据发送到服务器 打印(self.request.FILES) 返回 <MultiValueDict: {}> 我的ajax帖子 $(document).ready(function() { var newRepForm = $('#newReportForm'); newRep

这个问题夺去了我整个周末的生命,所以感谢所有能给我的帮助

我有一个按类别上传报告的表单。在没有ajax的情况下提交表单是没有问题的。但是当我切换到ajax时,ajax不会将文件数据发送到服务器

打印(self.request.FILES)

返回

<MultiValueDict: {}>
我的ajax帖子

$(document).ready(function() {
       var newRepForm = $('#newReportForm');
        newRepForm.submit(function(event){
            $.ajax({       
            type: "POST",
            url: "",
            dataType: 'json',
            data: { 
                  report_type :$('#id_report_type').val() ,
                  report_projects :$('#id_report_projects').val(),
                  report_date : $('#id_report_date').val(),
                  report_name:$('#id_report_name').val(),
                  report_file: $('#id_report_file').val()


},
            success: function (data) {
                $('#message').html("<p class='text-center text-success font-weight-bold'>Success</p>");


            },
            error: function(data) {
                $("#message").html("<p class='text-center text-danger font-weight-bold'>Failed</p>");
            }
        });
          return false;
       });

});
$(文档).ready(函数(){
var newRepForm=$(“#newReportForm”);
newRepForm.submit(函数(事件){
$.ajax({
类型:“POST”,
url:“”,
数据类型:“json”,
数据:{
报告类型:$('#id_报告类型').val(),
报告项目:$(“#id_报告项目”).val(),
报告日期:$(“#id_报告日期”).val(),
报告名称:$('#id_报告名称').val(),
报告文件:$('#id_报告文件').val()
},
成功:功能(数据){
$('#message').html(“

success

”; }, 错误:函数(数据){ $(“#message”).html(

失败

); } }); 返回false; }); });
支持通过AJAX上传文件

应该是这样的

newRepForm.submit(function(event){
    var formData = new FormData(newRepForm[0]);
    $.ajax({   
       url: "",    
       type: 'POST',
       data: formData,
       async: false,
       cache: false,
       contentType: false,
       enctype: 'multipart/form-data',
       processData: false,
       success: function (data) {
          $('#message').html("<p class='text-center text-success font-weight-bold'>Success</p>");
       },
       error: function(data) {
            $("#message").html("<p class='text-center text-danger font-weight-bold'>Failed</p>");
       }
    });
    return false;
});
newRepForm.submit(函数(事件){
var formData=新formData(newRepForm[0]);
$.ajax({
url:“”,
键入:“POST”,
数据:formData,
async:false,
cache:false,
contentType:false,
enctype:“多部分/表单数据”,
processData:false,
成功:功能(数据){
$('#message').html(“

success

”; }, 错误:函数(数据){ $(“#message”).html(

失败

); } }); 返回false; });
支持通过AJAX上传文件

应该是这样的

newRepForm.submit(function(event){
    var formData = new FormData(newRepForm[0]);
    $.ajax({   
       url: "",    
       type: 'POST',
       data: formData,
       async: false,
       cache: false,
       contentType: false,
       enctype: 'multipart/form-data',
       processData: false,
       success: function (data) {
          $('#message').html("<p class='text-center text-success font-weight-bold'>Success</p>");
       },
       error: function(data) {
            $("#message").html("<p class='text-center text-danger font-weight-bold'>Failed</p>");
       }
    });
    return false;
});
newRepForm.submit(函数(事件){
var formData=新formData(newRepForm[0]);
$.ajax({
url:“”,
键入:“POST”,
数据:formData,
async:false,
cache:false,
contentType:false,
enctype:“多部分/表单数据”,
processData:false,
成功:功能(数据){
$('#message').html(“

success

”; }, 错误:函数(数据){ $(“#message”).html(

失败

); } }); 返回false; });
newRepForm.submit(function(event){
    var formData = new FormData(newRepForm[0]);
    $.ajax({   
       url: "",    
       type: 'POST',
       data: formData,
       async: false,
       cache: false,
       contentType: false,
       enctype: 'multipart/form-data',
       processData: false,
       success: function (data) {
          $('#message').html("<p class='text-center text-success font-weight-bold'>Success</p>");
       },
       error: function(data) {
            $("#message").html("<p class='text-center text-danger font-weight-bold'>Failed</p>");
       }
    });
    return false;
});