如何在django的电子商务应用程序中呈现订单完成页面
我目前正在构建一个电子商务风格的应用程序。我有一个处理POST数据(订单信息)的新订单视图。之后,它会呈现一个HttpResponseRedirect to order_complete,它只呈现order_complete.html模板 将订单号传递给模板的最佳方式是什么。以下是我所做的:如何在django的电子商务应用程序中呈现订单完成页面,django,django-views,Django,Django Views,我目前正在构建一个电子商务风格的应用程序。我有一个处理POST数据(订单信息)的新订单视图。之后,它会呈现一个HttpResponseRedirect to order_complete,它只呈现order_complete.html模板 将订单号传递给模板的最佳方式是什么。以下是我所做的: messages.success(request, 'Your order number is %s ' % order.order_id) return HttpRespo
messages.success(request, 'Your order number is %s ' % order.order_id)
return HttpResponseRedirect(reverse('orders:order_complete_url'))
但是,由于消息的性质,它会在页面刷新时消失。这是一个理想的行为还是有更好的方法来实现它?此外,我如何将订单详情、总计等传递到模板?Django的
消息框架允许我们在处理表单或其他类型的用户输入后向用户显示一次性通知消息。它在一个请求中临时存储消息,并检索它们以在后续请求(通常是下一个请求)中显示。
因此,当您刷新页面时,该消息将消失,不再显示
您可以使用session
存储希望在后续请求中使用的变量
例如:
request.session['order_number'] = order.order_id # set in session
return HttpResponseRedirect(reverse('orders:order_complete_url'))
这将在会话中设置订单号。在这里,您还可以在order\u complete\u url
视图中设置所需的其他变量
然后在您的order\u complete\u url
视图中,您可以通过以下方式访问order\u number
:
order_number = request.session['order_number'] # retrieve order number from session
您可以将此订单号
传递到上下文
,然后在模板中显示。现在,当您刷新页面时,订单号将显示在模板中。谢谢!我现在就实施,然后再给你回复