在 Formwizard 中动态填充 ChoiceField Formset
Dynamically populate ChoiceField Formset in Formwizard
我正在尝试使用上一步中的信息填充 FormSet 中的 ChoiceField(与我上次提出的问题有点相关)。我快到了,但似乎无法初始化列表:
def get_form(self, step=None, data=None, files=None):
form = super(FormWizardView, self).get_form(step, data, files)
step = step or self.steps.current
if step == 'pages':
form_class = self.form_list[step]
form1_cleaned_data = self.get_cleaned_data_for_step('agenda')
formset = PagesFormSet()
loan_choices = []
for form in formset.forms:
if form1_cleaned_data:
form.fields['agenda_select'].choices = [item for item in form1_cleaned_data.items()]
# print(form.fields['agenda_select'])
return PagesFormSet(data = data)
return super(FormWizardView, self).get_form(step, data, files)
只是没有显示列表。但是,在控制台中打印确实有效。如果我只是 return formset 而不是 PagesFormSet,列表就会填充。但是,该列表无效,我无法继续下一步(如果我添加 data = data
也是这种情况。我想我应该向 return PagesFormSet(data = data)
添加一些额外的信息,但我只是不知道。
我很想得到一些帮助,因为我已经盯着这个问题看了一天了。非常感谢!
我找到答案了!我所做的是 return 表单集而不是 PagesFormSet。但是,我在启动 formset 时已经给了 PagesFormset 所需的数据。这显然意味着表单集包含数据以及选项中的额外信息。供日后参考:
def get_form(self, step=None, data=None, files=None):
form = super(FormWizardView, self).get_form(step, data, files)
step = step or self.steps.current
if step == 'pages':
form_class = self.form_list[step]
form1_cleaned_data = self.get_cleaned_data_for_step('agenda')
formset = PagesFormSet(data = data)
loan_choices = []
for form in formset.forms:
if form1_cleaned_data:
form.fields['agenda_select'].choices = [item for item in form1_cleaned_data.items()]
# print(form.fields['agenda_select'])
return formset
return super(FormWizardView, self).get_form(step, data, files)
我正在尝试使用上一步中的信息填充 FormSet 中的 ChoiceField(与我上次提出的问题有点相关)。我快到了,但似乎无法初始化列表:
def get_form(self, step=None, data=None, files=None):
form = super(FormWizardView, self).get_form(step, data, files)
step = step or self.steps.current
if step == 'pages':
form_class = self.form_list[step]
form1_cleaned_data = self.get_cleaned_data_for_step('agenda')
formset = PagesFormSet()
loan_choices = []
for form in formset.forms:
if form1_cleaned_data:
form.fields['agenda_select'].choices = [item for item in form1_cleaned_data.items()]
# print(form.fields['agenda_select'])
return PagesFormSet(data = data)
return super(FormWizardView, self).get_form(step, data, files)
只是没有显示列表。但是,在控制台中打印确实有效。如果我只是 return formset 而不是 PagesFormSet,列表就会填充。但是,该列表无效,我无法继续下一步(如果我添加 data = data
也是这种情况。我想我应该向 return PagesFormSet(data = data)
添加一些额外的信息,但我只是不知道。
我很想得到一些帮助,因为我已经盯着这个问题看了一天了。非常感谢!
我找到答案了!我所做的是 return 表单集而不是 PagesFormSet。但是,我在启动 formset 时已经给了 PagesFormset 所需的数据。这显然意味着表单集包含数据以及选项中的额外信息。供日后参考:
def get_form(self, step=None, data=None, files=None):
form = super(FormWizardView, self).get_form(step, data, files)
step = step or self.steps.current
if step == 'pages':
form_class = self.form_list[step]
form1_cleaned_data = self.get_cleaned_data_for_step('agenda')
formset = PagesFormSet(data = data)
loan_choices = []
for form in formset.forms:
if form1_cleaned_data:
form.fields['agenda_select'].choices = [item for item in form1_cleaned_data.items()]
# print(form.fields['agenda_select'])
return formset
return super(FormWizardView, self).get_form(step, data, files)