0

マルチステップフォームにDjangoのFormWizardを使用していますが、最後のステップとして(データを保存した後)、以前に入力したフォームデータの概要を表示したいと思います。

これは、次のようにdone()メソッドをオーバーライドすることで実現できます。

def done(self, form_list, **kwargs):
    info = self.save_info(form_list[0])
    extra = self.save_extra(info, form_list[1])
    # how to provide context for redirect?
    # return redirect('confirmation.html')
    # this works, but uses POST
    return render_to_response(
        'confirmation.html',
        {'form_list': [form.cleaned_data for form in form_list]},
        context_instance=RequestContext(self.request)
    ) 

POSTを介して確認を呼び出す代わりに、リダイレクト(ブラウザーの戻るボタン)を使用したいと思います。しかし、リダイレクトはコンテキストをとらないため、form_listをビュー/テンプレートに渡す方法がわかりません。これを行うためのクリーンな標準的な方法がある場合、何かアイデアはありますか?

注:データは匿名ユーザーによって入力されます。したがって、保存されたデータとユーザーは関連付けられていません。

4

2 に答える 2

1

また、フォームデータをセッションに保存し、confirmation.htmlビューを呼び出すときにその情報を取得することもできます。

これを使用する場合は、SESSION_EXPIRE_AT_BROWSER_CLOSE=Trueまたはセッションの有効期限を設定することをお勧めします。

于 2012-09-17T12:10:05.977 に答える
0

私はあなたがこのようにできると思います。

def done(self, form_list, **kwargs):
    info = self.save_info(form_list[0])
    extra = self.save_extra(info, form_list[1])
    # how to provide context for redirect?
    # return redirect('confirmation.html')
    # this works, but uses POST
    form_list=[form.cleaned_data for form in form_list]

    return HttpResponseRedirect("/url/"+form_list)
于 2012-09-17T10:08:52.377 に答える