Django表单提交时的两个返回语句

0 投票
3 回答
546 浏览
提问于 2025-04-17 11:57

我有一个Django表单,里面有复选框。用户选择复选框后,会点击提交按钮,这样就会执行view.py中的request.POST部分,并返回一个PDF文件。现在在返回PDF文件后,我该如何刷新同一页面呢?

views.py

 if request.POST:
    generate PDF file using reportlab tool
    return PDF
 else:
    return template which consist of django form

在request.POST中我可以获取到PDF文件,同时我该如何刷新页面呢?

在返回PDF后,我想刷新同一页面。有什么解决办法吗?

提前谢谢你!

3 个回答

0

其实你可以在返回PDF的同时,让后台页面刷新,或者在一段时间后跳转到其他地方。

你只需要在生成的后台页面的HTML头部放入以下代码:

<META HTTP-EQUIV="Refresh" CONTENT="3;URL=http://www.some.org/some.html">

这段代码会在3秒后把用户跳转到你提供的网址。

希望这对你有帮助。

1

这个问题说不通。

用户一次只能看到一个回复。如果你表单的回复是PDF文件,那他们在浏览器里看到的就是这个PDF。

2

评论说得对,这个问题和任何服务器端语言都没有关系,所以我来给你一些解决方案的建议:

一个很常见的做法是,不直接返回PDF文件,而是先返回一个HTML页面,上面写着“您的下载即将开始”。这个页面可以用一个链接或者一些简单的JavaScript代码来在新的浏览器窗口中打开PDF文件。之后,这个页面可以保持打开状态,或者自动跳转到其他地方。

撰写回答