在 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,他的评论让我开始思考设计和简化问题。
原文由 FunLovinCoder 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您遇到这样的问题,您可能需要修改设计。
这是 HTTP 的限制,POST 数据不能与重定向一起使用。
你能描述一下你想要完成什么吗,也许我们可以考虑一些巧妙的解决方案。
如果您不想像 Matthew 建议的那样使用会话,您可以将 GET 中的 POST 参数传递给新页面(考虑一些限制,例如安全性和查询字符串中 GET 参数的最大长度)。
更新您的更新:) 对我来说您有 2 个网络应用程序并且这些应用程序使用一个 views.py 听起来很奇怪(我说的对吗?)。无论如何考虑将您的数据从 GET 中的 POST 传递到正确的视图(当然,以防数据不敏感)。