我有重定向到网址的功能。
return redirect('/orders')
网址/orders
包含一些传递给它的上下文数据。
我想传递一些额外的数据以及来自URL功能的数据,如:
return redirect('/orders', {'message':'some_message'})
我根据文档尝试了这样:
return redirect('/orders', message='some_message')
但它没有将任何数据传回html。 那么如何使用重定向传递数据?
答案 0 :(得分:4)
如果它只是一个小项目,例如?status=2
,它可以通常的方式添加到URL中。 (小一点:小心,它可能会对搜索引擎如何抓取您的网站产生负面影响,即产生重复的内容问题)
但是,对于您的示例,传递整个"消息"字符串到下一页,我建议Django's Messages framework执行此操作:使用Django's Session engine。
答案 1 :(得分:-1)
如果你正在使用http redirect
(你提到的情况),你需要通过url的查询字符串传递你的参数:
redirect('/orders?message=some_message')
另一种方法是使用自定义参数调用其他视图,一般不建议这样做。
编辑: 您还可以使用django.sessions进行基于请求的集中消息传递。
答案 2 :(得分:-1)
我的意思是您总是可以使用get_context_data
方法来做到这一点。此方法将始终将数据从视图发送到模板。