【问题标题】:Anyone know an up-to-date (September 2009) example of file-uploading in Django?有人知道 Django 中文件上传的最新(2009 年 9 月)示例吗?
【发布时间】:2010-12-01 03:18:30
【问题描述】:

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


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

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

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

我是否必须手动从某处获取文件数据才能将其in 复制到模型中的此字段?我的意思是,我知道 request.FILES 已被弃用)但是当我从自定义 HTML 表单(使用

干杯

菲尔

【问题讨论】:

    标签: django django-file-upload newforms


    【解决方案1】:

    docs 在这方面做得很好,并且是最新的。

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

    现在,如果您想对文件上传做更多花哨的事情,那就是您可能不得不脱离默认的FileField,但同样,documentation 很好地涵盖了这一点。

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

    【讨论】:

    • +1,文档很清楚,实例化表单时需要传递 request.FILES 。无法想象 OP 从哪里得到它已被弃用的想法。
    • 谢谢。是的,我错过了在官方文档示例中将 request.FILES 传递到表单构造函数中。我正在阅读另一个网站,该网站显示它被明确访问,并且一个 cmets 说这是过时的。
    • 实际上。再三考虑,该文件似乎没有保存在任何地方。所以我必须手动执行此操作??
    • 你必须在你的设置中设置一个 MEDIA_ROOT 属性指向一个硬盘位置来存储文件。
    • 您是在表单实例上调用 is_valid() 还是 save()?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-23
    • 1970-01-01
    • 2010-12-08
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多