将包含其他数据的zip文件上载到AjaxPost以进行django上载

将包含其他数据的zip文件上载到AjaxPost以进行django上载,post,django-views,ajaxform,jszip,Post,Django Views,Ajaxform,Jszip,我正在使用JSZIP压缩来自THREEJS的网格对象,然后通过ajax post请求将其上传到django模型。原则上,它与中的有点类似,但我正在上载的数据更为多样化,并且当前失败 JS myButton.click(function(){ var TempMesh = new THREE.Mesh(effect.generateGeometry(),effect.material); // requires THREE.js var zip = new JSZip();

我正在使用
JSZIP
压缩来自
THREEJS
的网格对象,然后通过ajax post请求将其上传到django模型。原则上,它与中的有点类似,但我正在上载的数据更为多样化,并且当前失败

JS

myButton.click(function(){
    var TempMesh = new THREE.Mesh(effect.generateGeometry(),effect.material); // requires THREE.js
    var zip = new JSZip();
    var the_exporter = new THREE.OBJExporter(); // requires THREE.OBJExporter()
    var result = the_exporter.parse(TempMesh);
    zip.file("Blob.obj", result.obj);
    zip.file("Blob.mtl", result.mtl);
    zip.generateAsync({type:"blob"}).then(
        function (blob) {
            var fileObj = new File([blob],"Blob.zip");
            var csrftoken = document.getElementsByName('csrfmiddlewaretoken')[0].value; // a div in my html template storing a temporary csrf token
            var data = new FormData();
            data.append("csrfmiddlewaretoken", csrftoken);
            data.append("the_file", fileObj);
            $.ajax({
                url: "THE_DJANGO_VIEW_URL",
                method: 'POST',
                data: data,
                contentType: false,
                processData: false,
                enctype: 'multipart/form-data',
                success: function (result, status, xhr) {//...},
                error: function (result, status, xhr) {//...}
            });
        }
    );

});
视图.py

def MyView(request,pk):
    if request.method == 'POST':
        for keyVals in request.POST.keys():
            print('{} : {}'.format(keyVals,request.POST[keyVals]))
视图收到Post请求后,不会打印文件的密钥:

csrfmiddlewaretoken:3QAQCH6VFGB

这说明发送zip文件的方式不正确。有什么想法吗?
此表单包含的数据远不止csrf和zip文件,还用于创建django模型的新实例。

刚刚意识到发送的文件位于
请求下。文件
而不是
请求。POST
。把这个留给遇到类似问题的人