我有一個Django Form
,提交後,調用相當耗時的操作。這個操作(一個Python函數)創建數據。會話值不會保存,直到查看返回
當創建相關數據時,我想將其存儲到活動的session
,以便用戶可以在生成結果時(通過現在的簡單刷新)看到結果。
我寫了一個模板,顯示session
的表單和所有當前字段。但是,看起來會話只在長時間運行的函數返回時才保存完整(在執行期間刷新頁面時不會顯示任何修改的組件)。我從When sessions are saved開始認爲,只要字典被修改,會話就應該更新。
我誤解了會話如何保存?或者,是否有另一種方法來實現我在找的東西?
下面是相關views.py
代碼的抽象:
def my_form(request):
""" Render the form, with any results included below. """
if request.method == "POST":
form = MyForm(request.POST)
if form.is_valid():
request.session.clear()
long_running_func(request.session, form)
else:
form = MyForm()
return render_to_response('my_form.html', {'form': form,
'session': request.session})
def long_running_func(session, form):
session["status"] = "Executing"
result_data = long_running_task()
session["results"] = result_data
...