如何将一些信息传递给视图而不将其包含在 URL 中(django 新手)

Posted

技术标签:

【中文标题】如何将一些信息传递给视图而不将其包含在 URL 中(django 新手)【英文标题】:How can I pass some information to a view without including it in the URL (django newbie) 【发布时间】:2010-10-06 16:39:57 【问题描述】:

我正在开发一个小 django 应用程序,用于保留绘画版画。

客户进入此订购页面,填写一些信息(姓名、电子邮件、奉献精神等),选择他们想要保留的打印编号,然后单击订购。点击后,我的 django 代码将所有客户信息存储在一个新的 OrderInfo 对象中,它调用了一个 HttpResponseRedirect 到我的感谢页面。

我希望此感谢页面包含 OrderInfo 中包含的一些确认详细信息(例如,谢谢您,name,您的订单)。

我的第一个想法是在感谢 url 中包含 OrderInfo 的 ID,但这会让 任何人 访问 OrderInfo 以获取任何不适合隐私的 ID。

您可以在这里查看演示:link

提前致谢!

【问题讨论】:

【参考方案1】:

首先,确保所有显示敏感信息的视图都具有 @login_required 装饰器,并检查 request.user 实际上是有权访问请求信息的视图。

现在,对于您的具体问题,您可以将OrderInfo 放入会话字典中。事实上,将整个对象复制到那里可能会很方便,而不仅仅是 ID。

另外,如果您想允许未登录的用户执行所有这些操作,您仍然必须以某种方式识别他们。同样,最明显的方法是大量使用会话来跟踪用户。

【讨论】:

以上是关于如何将一些信息传递给视图而不将其包含在 URL 中(django 新手)的主要内容,如果未能解决你的问题,请参考以下文章

Codeception 助手使用 $I 而不将其传递给助手

在 CUDA 中查找 max/min 而不将其传递给 CPU

如何发布数据而不将其传递给模型.Net Core

如何访问对象而不将其作为参数传递?

设置自定义异常的消息而不将其传递给基本构造函数

iOS如何显示具有资产库路径的图像而不将它们绑定到实例变量