我有一些使用 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/