在Django中处理表单后将变量传递到“成功”页面

5 投票
2 回答
1718 浏览
提问于 2025-04-16 15:42

有没有办法把上下文变量传递给重定向的响应呢?我想在用户提交表单后,把他们重定向到一个成功页面,但我不想让这个成功页面只是一个静态的HTML文件。我需要根据表单数据显示额外的信息。

我看过这个问题,但那里的解决方案只是让不同的文件在同一个网址上显示。我想重定向用户,这样在页面上刷新时就不会重复提交数据了。

目前我能做到的就是重定向到一个网址,同时传递GET变量,具体可以参考这里。这感觉有点像是变通的办法,我在想有没有更好的解决方案……

谢谢

2 个回答

5

我觉得你有三种选择:

  1. 在重定向的时候使用GET变量。
  2. 在会话中存储一些东西。
  3. 如果你是通过提交的表单创建一个对象,可以把那个对象的ID放在重定向的URL里,然后在新的页面中使用它。

你遇到的限制是因为HTTP协议是无状态的,这并不是Django本身的问题。

4

你可以把你的值存储在一个会话里,然后让重定向后的页面从这个会话中获取这些值,这样就可以使用了。

撰写回答