Django:如何保留传递给另一个渲染的渲染函数的上下文对象

时间:2017-10-18 22:19:09

标签: django django-views

我在渲染函数中传递了一个名为dict_context的上下文字典,它使用数据渲染得很好。

return render(request, 'myapp/track.html', dict_context)

现在,在呈现的页面中,我有一个POST的按钮,我想再次使用上下文字典,但是我收到了这个错误:

UnboundLocalError at /track_containers_import_data
local variable 'dict_context' referenced before assignment

如何在下一个渲染中重用dict_context?我认为上下文会自动保存在会话中。

1 个答案:

答案 0 :(得分:1)

通过存储在会话中,可以将对象传递给其他视图函数或POST方法:

在第一个视图函数中的当前会话中存储对象:

request.session['dict_context'] = dict_context
return render(request, 'myapp/track.html', dict_context)

在同一会话中的任何其他视图函数中检索:

dict_context= request.session.get('dict_context', None) 
# ---------  do whatever you want with the object --------
return render(request, 'myapp/mytemplate.html', dict_context)