Django FileResponse 不要下载 HTML 文件



我正在尝试下载一个预先生成的HTML文件,但我所尝试的都不起作用。

搜索StackOverflow我发现返回FileResponse(open(file_path, 'rb'))会下载一个文件,但在下载的过程中,HTML只是在选项卡上呈现;另存为";对话框只将其呈现到当前选项卡。

在我的主模板中,我有一个带有target="_blank"标签的表单,以及一个打开(不带AJAX的(一个新选项卡的提交按钮,该选项卡用于自动下载文件。

我想要的:在我提交代码后,会出现一个新的选项卡,与该URL相关的视图会执行一些代码(与下载无关(,然后在该过程之后(工作正常(将HTML文件下载到设备。HTML存在,没有任何问题,唯一的问题是我想下载文件,但浏览器会显示它。

注1:Yes,i know that with right clic->下载我可以下载我看到的HTML,但这个系统是为非IT人员准备的,我需要尽可能简单地完成它。注意2:我把没有AJAX的消息放在这里,因为我在另一篇帖子中发现FileResponsive没有AJAX的单词。

您应该在响应中放入特殊的标头

Content-Disposition: attachment; filename="cool.html"
response = FileResponse(open(file_path, 'rb'))
response['Content-Disposition'] = 'attachment; filename="cool.html"'
return response

最新更新