Form
私は、送信時にかなり時間のかかる操作を呼び出すDjango を持っています。この操作 (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
...