Django Wizard Form を使用するのはこれが初めてで、予想以上に多くの問題が発生しています (私は初心者です)。データベースからフォーム ウィザード テンプレートに初期データを渡そうとしています。私はグーグルで検索しましたが、答えが見つかりませんでした。
データベースにクエリを実行し、辞書を作成して返すには get_context_data メソッドをオーバーライドする必要があると思いますが、それについてはよくわかりません。誰かが私に正しいプロセスを説明してもらえますか?
私のアイデアを示すために、以下にコードを示します。
def my_function(request):
form = MyWizard.as_view([Form1, Form2, Form3])
return form(context=RequestContext(request), request=request)
TEMPLATES = {'0': "form1.html",
'1': "form2.html",
'2': "form3.html",}
class MyWizard(SessionWizardView):
def get_template_names(self):
return [TEMPLATES[self.steps.current]]
def get_context_data(self, form, **kwargs):
if self.steps.current == 0:
list = MyModel.objects.all() # query my database
# convert list to dict
return context # return context with the dict
def done(self, form_list, **kwargs):
form_data = process_form_data(self.request, form_list)
return render_to_response('process-completed.html', {'form_data': form_data,})
ありがとうございました。