使用 django-formtool 时如何在模板中表示 initial_dict
Posted
技术标签:
【中文标题】使用 django-formtool 时如何在模板中表示 initial_dict【英文标题】:How to represent initial_dict in template when use django-formtool 【发布时间】:2017-08-01 05:15:45 【问题描述】:我正在使用 django-formtools,我在上一页中获得了表单数据。
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)
日志显示 get first_name 已成功。 但我不知道如何显示'first_name'。 请帮我在下一页显示以前的数据。
【问题讨论】:
【参考方案1】:我自己解决了这个问题。 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
...
【讨论】:
以上是关于使用 django-formtool 时如何在模板中表示 initial_dict的主要内容,如果未能解决你的问题,请参考以下文章
使用 TailwindCSS 时,如何避免模板在渲染列表时将分隔符添加到分隔符?
在进行添加时如何通过使用 c++ 模板来避免临时对象? [关闭]
如何在使用 Nuxt 的 fetch() 挂钩获取数据时防止模板错误