1

更新:感谢下面的海报,很明显官方文档是最新的。最好仔细阅读,而不是浏览谷歌中出现的一堆其他页面。


我一直在寻找在 Django 中上传文件的示例和片段,但后来读到有人说它们已经过时了。

这是我在网络上的基本困惑(通过查看各种示例)。

我是否必须自己手动保存文件数据(即打开一个文件并写入它,如本例所示)或者当我保存具有文件类型字段的模型时,Django 现在是否自动保存文件?

我是否必须从某处手动获取文件数据才能将其复制到模型的该字段中?我的意思是,我知道 request.FILES 已被弃用)但是当我从自定义 HTML 表单(使用 <input type="file" 标记)上传文件时,该字段的cleaned_data 为无,即使 request.FILES字典似乎仍然包含数据。那么,我该如何获取文件数据并将其放入模型的字段中呢?(如果这就是我的意思?)

干杯

菲尔

4

1 回答 1

3

文档在这方面非常好,并且是最新的。

对于基本的文件上传,只需FileField在表单中使用 a。传入request.POSTrequest.FILES填写此表格将为您完成工作。当然,request.FILES据我所知并没有被弃用。

现在,如果您想对文件上传做更多花哨的事情,那就是您可能不得不脱离默认设置FileField,但同样,这在文档中得到了很好的介绍

我还要补充一点,一个常见的错误是忘记了enctype="multipart/form-data"自己的形式。不包括这会导致request.FILES为空。

于 2009-09-24T15:27:42.347 回答