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

2024-09-30 22:20:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有重定向到URL的函数。

return redirect('/orders')

URL/orders有一些正在传递给它的上下文数据。 我想在视图中传递一些附加数据以及来自URL函数的数据,如:

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

根据文件我这样做过:

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

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


Tags: 文件数据函数视图urlmessagereturnhtml
3条回答

如果它只是一个小项目,比如?status=2,那么可以用通常的方式将它添加到URL中。(撇开小问题不谈:小心,这可能会对搜索引擎如何为你的网站建立蜘蛛网产生负面影响,也就是说,造成重复的内容问题)

但是,对于您的示例,将整个“消息”字符串传递到下一页时,我建议使用Django's Messages framework的方式:使用Django's Session engine

我的意思是你总是可以使用get_context_data方法来实现这一点。此方法始终将数据从视图发送到模板。

如果使用http redirect(您提到的情况),则需要通过url的查询字符串传递参数:

redirect('/orders?message=some_message')

另一种方法是使用自定义参数调用其他视图,通常不建议这样做。

编辑: 您还可以使用django.sessions来生成基于中央请求的消息传递。

相关问题 更多 >