Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django Backbone.js链接文件到模型_Django_Backbone.js - Fatal编程技术网

Django Backbone.js链接文件到模型

Django Backbone.js链接文件到模型,django,backbone.js,Django,Backbone.js,我正在使用django和backbone.js创建一个web应用程序。问题是我需要上传文件到服务器。如何将主干模型与文件链接?因此,当我执行model.save()时,文件将上载到服务器 编辑:只是为了把事情弄清楚。我想做的是将输入文件框与主干模型链接起来。因此,当用户从他/她的计算机中选择一个文件时,我应该能够将该文件与主干模型链接。当我在主干脚本中调用model.save()时,它应该将文件与模型的其余部分一起发送。基本上是由Web浏览器决定何时上载文件,而不是由服务器决定。服务器可能会收到

我正在使用django和backbone.js创建一个web应用程序。问题是我需要上传文件到服务器。如何将主干模型与文件链接?因此,当我执行model.save()时,文件将上载到服务器


编辑:只是为了把事情弄清楚。我想做的是将输入文件框与主干模型链接起来。因此,当用户从他/她的计算机中选择一个文件时,我应该能够将该文件与主干模型链接。当我在主干脚本中调用model.save()时,它应该将文件与模型的其余部分一起发送。

基本上是由Web浏览器决定何时上载文件,而不是由服务器决定。服务器可能会收到request.FILES中的文件。然后,您可以在浏览器提交文件后处理model.save()。有关更多信息,请访问Django非常好的文档网站:


js中的模型提供了使用模型处理数据的方法。但是Django有自己的接收文件的功能,如上所述。

问题在于,不能直接使用AJAX上传文件。 常见的解决方法是将表单提交到隐藏的iframe

你可以使用插件。它提供了ajaxSubmit方法,其工作原理类似于jQuery.ajax调用,但使用隐藏的iframe以便上传文件

此外,您还需要覆盖Backbone.sync或基于每个模型覆盖sync,并将$.ajax调用替换为$(someForm).ajaxSubmit调用


在服务器上,您应该返回带有id参数和包含文件url的文件参数的JSON字符串,我知道djnago提供了上传文件和保存文件的机制,谢谢。但我的问题是如何将输入文件标记链接到主干模型。因此,当我在backbone中调用model.save时,它会将文件发送到服务器。backbone.js中的模型使用Ajax调用将资源属性发送到服务器。这些属性被转换为参数以通过线路发送。我不确定你所问的是否是一个现实的期望。我认为你提到django已经把这个问题的潜在回答者弄糊涂了。问题完全在backbone.js中,服务器端与此无关。我有完全相同的问题,但我的服务器端恰好是PHP。这家伙也有同样的问题,但他使用的是Rails: