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

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

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

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

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

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

提前致谢!

【问题讨论】:

    标签: django django-templates django-urls


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2021-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-21
      • 2017-11-11
      • 1970-01-01
      • 1970-01-01
      • 2021-09-02
      相关资源
      最近更新 更多