【发布时间】:2011-03-02 17:41:05
【问题描述】:
在 Django views.py 文件中处理 POST 请求时,我有时需要将其重定向到另一个 url。我重定向到的这个 url 由同一个 Django views.py 文件中的另一个函数处理。有没有办法做到这一点并维护原始 POST 数据?
更新:更多解释我为什么要这样做。 我有两个网络应用程序(我们称它们为 AppA 和 AppB),它们接受用户在文本字段中输入的数据。当用户点击提交时,数据被处理并显示详细结果。 AppA 和 AppB 需要不同类型的数据。有时用户错误地将 AppB 类型的数据发布到 AppA。发生这种情况时,我想将它们重定向到 AppB 并显示 AppB 结果,或者至少用他们输入 AppA 的数据填充它。
还有:
客户想要两个独立的应用程序,而不是将它们组合成一个。
我无法显示属于客户端的代码。
更新 2: 我已经决定 KISS 是这里最好的原则。我将这两个应用程序合二为一,使事情变得更简单、更强大;我应该能够说服客户这也是最好的方法。感谢所有伟大的反馈。如果我要按照描述维护两个应用程序,那么我认为会话将是执行此操作的方法 - 感谢 Matthew J Morrison 的建议。感谢 Dzida,因为他的 cmets 让我想到了设计和简化。
【问题讨论】:
-
你真的需要向客户端发送重定向,或者这可以通过调用一个函数并将所有发布数据传递给它来完成吗?
-
我需要在客户端浏览器上更改 url,所以这是我能做到的唯一方法。
-
你不能先对post数据做所有的处理,然后再重定向吗?
-
我有类似的情况,但 POST 的数据要么与现有数据匹配,要么不匹配。如果匹配,我会获取该数据的 id,然后通过重定向中的 GET 变量将该 id 传递给脚本。我还将 POST 数据保存在 SESSION 中。现在重定向页面加载了 GET 中
id引用的数据,并且还可以访问 POST 提交的其他数据。
标签: django