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

时间:2009-02-10 16:36:43

标签: django django-templates django-urls

我正在制作一个用于保留绘画版画的小django应用程序。

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

我希望这个谢谢页面包含OrderInfo中包含的一些确认详细信息(例如,谢谢你,{{name}},用于订购)。

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

您可以在此处查看演示:link

提前致谢!

1 个答案:

答案 0 :(得分:5)

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

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

另外,如果您希望允许未登录的用户执行所有操作,您仍需要以某种方式识别它们。再一次,最明显的方法是大量使用会话来跟踪用户。