Django - forms.FileField()初始值

时间:2010-12-05 10:32:25

标签: django django-forms

是否可以动态地为forms.FileField()提供初始值?

2 个答案:

答案 0 :(得分:16)

我不确定,如果这是你想要的,但是......

显然,您无法为文件输入设置初始数据(这意味着您将文件发送给用户)。 Django有一个ClearableFileInput小部件,这个小部件假装显示初始数据:如果链接存在,它会显示上传文件的链接

这是通过检查初始对象(传递给files字典中的表单构造函数的对象)是否具有url属性来实现的。设置此属性后,窗口小部件将显示“当前链接”行。

顺便说一句,如果您使用文件存储获取文件对象,则可以使用存储的url()方法获取该文件的链接。

答案 1 :(得分:7)

根据安全标准,<input type="file">不能具有默认值,并且无法对其进行操作。

原因是,黑客可以将文件输入的默认值设置为系统上的任何重要文件(包含密码,证书等),使用CSS隐藏此字段,您永远不会知道您已上传黑客主持的东西。