入力値データをsessionに保存して行いますが、多少複雑なので、クラスビューではなく関数ビューを使うのが良いかと思います。
- views.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
from .forms import HogeForm from django.shortcuts import redirect def HogeCreateView(request): # 一覧表示からの遷移や、確認画面から戻った時 if request.method == 'GET': # セッションにデータがあればそれを使う form = HogeForm(request.session.get('form_data')) # 送信ボタンが押された時(POSTされた時) else: # POST form = HogeForm(request.POST) # 送信された値が正しかった時の処理 if form.is_valid(): # 保存 form.save() # セッションにデータを格納 request.session['form_data'] = request.POST # 遷移させるページ return redirect('hoge:top') # コンテキストにフォームのオブジェクトを指定してレンダリング context = { 'form': form, } return render(request, 'hoge_form.html', context) |
テンプレートの、テンプレートタグ{{ form }}に、フォームと値がセットされます。
以上、備忘録。