【发布时间】:2014-03-25 12:12:39
【问题描述】:
我一直在努力解决这个问题,似乎无法找到解决方案......
我有一个 FormWizard,它包含两个步骤:一个 Form (step0),然后是一个 FormSet (step1):
forms.py
# Step 0
class StrategyForm(forms.ModelForm):
class Meta:
model = Strategy
# Step 1
class LegForm(forms.ModelForm):
class Meta:
model = Leg
LegFormSet = formset_factory(LegForm, max_num=10)
在 step0 中,用户输入一个数字,我想在 FormSet 中将其用作“额外”,即如果用户在 step0 中输入 10,我希望 FormSet 在下一步中显示 10 个 Forms .
我根据其他问题尝试了以下方法,但似乎找不到解决方案:
views.py
def get_form(self, step=None, data=None, files=None):
if step is None:
step = self.steps.current
form = super(DealWizard, self).get_form(step, data, files)
if step == 'leg':
form.extra = 10
return form
和
def get_form(self, step=None, data=None, files=None):
if step is None:
step = self.steps.current
form = super(DealWizard, self).get_form(step, data, files)
if step == 'leg':
mgmt_form = form.management_form
mgmt_form.initial[INITIAL_FORM_COUNT] = 10
mgmt_form.initial[TOTAL_FORM_COUNT] = 10
return form
我(非常)是 django 新手,所以任何建议都会有所帮助 :)
【问题讨论】: