我有重定向到URL的功能。
return redirect('/orders')
URL /orders
有一些正在传递给它的上下文数据。我想在视图中传递一些额外的数据沿着来自URL函数的数据,如:
return redirect('/orders', {'message':'some_message'})
我试着这样根据文档:
return redirect('/orders', message='some_message')
但它没有将任何数据传递回html。那么如何通过重定向来传递数据呢?
5条答案
按热度按时间62o28rlo1#
如果它只是一个小项目,如
?status=2
,它可以以通常的方式添加到URL。(小旁:小心,它可能会对搜索引擎如何蜘蛛你的网站产生负面影响,即。创建重复内容问题)然而,对于您的示例,将整个“message”字符串传递到下一页,我建议使用与Django's Messages framework相同的方式:使用Django's Session engine。
yqkkidmi2#
您可以使用request.session[“key”]进行session重定向,如下图所示:
bksxznpy3#
也许有点盗版,但适用于我的用例。使用
session
,但进行了更改。重定向完成后,会话将被删除,变量将作为上下文传递给模板。我需要的东西。
lf5gs5x24#
如果你使用
http redirect
(你提到的例子),你需要通过url的查询字符串传递参数:另一种方法是使用自定义参数调用其他视图,这通常不建议使用。
编辑:您还可以使用django.sessions来创建基于请求的集中消息传递。
iibxawm45#
我的意思是你总是可以使用
get_context_data
方法来做到这一点。此方法将始终将数据从视图发送到模板。