2017-03-10 1 views
0

私はdjango-formtoolsを使用しています。前のページにフォームデータがあります。django-formtoolを使用する場合のテンプレートのinitial_dictの表現方法

def get_form_initial(self, step): 

    if step == '1': 
     prev_data = self.storage.get_step_data('0') 
     first_name = prev_data.get('first_name','') 
     logger.error("*** OUTPUT - prev_first_name *** : " + first_name) 

     return self.initial_dict.get(step, {'first_name':first_name}) 

ログにfirst_nameが成功したことが示されます。 しかし、私は 'first_name'を表示する方法がわかりません。 次のページに前のデータを表示させてください。

答えて

0

私はこの問題を自分で解決しました。 django-formtoolのドキュメントでは私には不十分でした。

get_form_initial(self、step):この関数で最初の前のデータを取得できますが、最初のデータを次の新しいフォームに渡すことはできません。

def get_context_data(self、form、** kwargs):この関数は、前のフォームのデータを次のフォームに渡すのに成功するのに役立ちます。次のように私がやった

右のものがあります:

--view.py

def get_context_data(self, form, **kwargs): 
    context = super(InformationWizard, self).get_context_data(form=form, **kwargs) 
    if self.steps.current == '1': 
    prev_data = self.storage.get_step_data('0') 
    first_name = prev_data.get('first_name','') 
    last_name = prev_data.get('last_name','') 
    context.update({'first_name': first_name, 'last_name': last_name}) 
    return context 

--template.py

... 
First Name: {{first_name}} Last Name: {{last_name}} 
... 
関連する問題