如何使用django重定向函数传递上下文数据?

时间:2016-01-02 08:34:02

标签: python django

我有重定向到网址的功能。

return redirect('/orders')

网址/orders包含一些传递给它的上下文数据。 我想传递一些额外的数据以及来自URL功能的数据,如:

return redirect('/orders', {'message':'some_message'})

我根据文档尝试了这样:

return redirect('/orders', message='some_message')

但它没有将任何数据传回html。 那么如何使用重定向传递数据?

3 个答案:

答案 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方法来做到这一点。此方法将始终将数据从视图发送到模板。