django - Django FileField 的替代上传方法

标签 django file-upload

我有一些使用 FileField 的 django 模型,并且用户一直在管理界面中上传文件。我们现在遇到一个问题,有些文件很大(1-3G),这使得http上传变得棘手。

有一个“容器”类,然后是带有容器 FK 的"file"类。我在管理 GUI 中使用了内联,使用户更容易(容器类形式,带有文件类内联)

我找到了 FilePathField,我想这对于让用户 scp/rsync 文件传输到服务器然后浏览并向其添加详细信息很有用,但是我如何在管理中获取它?我是否需要构建一个新的表单/ View 来创建对象?有没有什么方法可以以某种方式覆盖自定义管理表单中的模型(从而保留所有免费的管理优点),用文件路径字段替换文件字段?还有其他建议吗?

感谢您的建议!

最佳答案

您提到 FilePathField 可以工作,但需要重新启动网络服务器才能查看新文件。发生这种情况是因为选项被收集到FilePathField.__init__,在导入模块时被调用一次

修复方法是在表单的 __init__ 中重新调用字段的 __init__:

def __init__(self, **kwargs):
    super(MyForm, self).__init__(**kwargs)
    self.fields['file'].__init__(path)

(这样每次实例化表单时都会扫描目录。)

关于django - Django FileField 的替代上传方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1261300/

相关文章:

javascript - 谷歌驱动器 API : Correct way to upload binary files via the Multipart API

Mysql 加载数据到文件中,保留未更改的字段

django - Haystack Django一次搜索多个字段

django - 为什么 Debug模式下的 app/admin false 给我服务器错误 500

python - 日志文件导致部署在 apache 上的 django 应用程序出现权限错误

php - move_uploaded_file - 为什么它很重要?

php - Laravel 4 - 文件上传

node.js - Vue.js 和 Node.js - 我应该将图像上传到 vue(前端)还是 Node(后端)

python - Django Python - 本月和过去 6 个月的查询计数

python - 为 MySQL View 创建模型并加入它