在Django中预填充附加文件的表单来自某个URL

0 投票
2 回答
973 浏览
提问于 2025-04-17 05:10

我在我的Django网站上有一个表单,里面有“主题”、“内容”和“文件”这几个字段。如果在GET请求中有“主题”和/或“内容”这两个参数,我会从服务器端把它们预先填入表单中。现在我想对“文件”字段做同样的事情——更具体地说,我想如果请求中有一个“URL”参数,就从这个URL获取文件,并把它预先填入“文件”字段。

我在网上查了很多资料,但还是不知道怎么实现这个功能,无论是用纯JavaScript还是借助服务器的帮助。根据我的经验,由于input type="file"的特性,这在大多数浏览器中是不可行的(或者至少很难做到)。

实际上,有没有可能以某种方式实现这个功能呢?

2 个回答

1

大多数网站在处理这种情况时,会使用一个额外的表单来上传文件。通过ajax上传文件意味着你需要在服务器上暂时保存这个文件,然后你的原始表单只需要知道这个文件的地址,这样你就能知道什么时候可以处理它了。

接下来,你只需要知道什么时候可以把这个文件删除掉。

1

你不能提前填充一个文件字段。不过我觉得你根本不需要用这个字段,因为你是从一个网址获取文件,而不是从用户的本地电脑上获取。你可以直接用一个普通的文本框来输入网址,然后在表单提交后,服务器端再去获取这个文件(比如可以用 urllib 这个工具)。

撰写回答