Python Django FormWizard无限循环
我使用Django 1.4.8 ,但现在我需要更准确 实际上,在我的表单步骤0中,我有一个下拉列表,从中我选择了一个值,然后在步骤2,我需要加载与步骤0相同的数据,而在步骤0中没有选择的值 我是这样做的: URL.py: views.py 我的表格是: 现在发生了什么: 当我在表格第2步中提交数据时。。。我无限期地返回步骤2 如果我不将elif step=='2'的部分放在get_表单中,并将相同的代码放在ConsummPerform表单中:Python Django FormWizard无限循环,python,django,django-forms,django-formwizard,Python,Django,Django Forms,Django Formwizard,我使用Django 1.4.8 ,但现在我需要更准确 实际上,在我的表单步骤0中,我有一个下拉列表,从中我选择了一个值,然后在步骤2,我需要加载与步骤0相同的数据,而在步骤0中没有选择的值 我是这样做的: URL.py: views.py 我的表格是: 现在发生了什么: 当我在表格第2步中提交数据时。。。我无限期地返回步骤2 如果我不将elif step=='2'的部分放在get_表单中,并将相同的代码放在ConsummPerform表单中: self.fields['consummer'].c
self.fields['consummer'].choices = self.activated_services()
然后过程继续,但这不是我想要的:
最后的事
=
我注意到在步骤0之后调用get_表单的次数太多:实际上是4次。
我用一个打印表单跟踪了这一点,在get_表单中进行了一步,但表单从来都不是预期的表单
如果有人能解释我如何在向导中修复infite循环的行为;我将非常感激 我找到了解决方案: 在第二步,我必须这样做
elif step == '2':
step0_data = self.get_cleaned_data_for_step('0')
form = ConsummerForm(
data, initial={'provider': step0_data['provider']})
而不是
elif step == '2':
data = self.get_cleaned_data_for_step('0')
form = ConsummerForm(initial={'provider': data['provider']})
因为在第一段代码中,我没有像在第二段代码中意外地覆盖数据dict
现在一切都很好 您使用django表单向导所做的事情总是让我感到惊讶。想象一下,一旦它起作用:-这个问题似乎是离题的,因为它是关于非常本地化的问题。
self.fields['consummer'].choices = self.activated_services()
elif step == '2':
step0_data = self.get_cleaned_data_for_step('0')
form = ConsummerForm(
data, initial={'provider': step0_data['provider']})
elif step == '2':
data = self.get_cleaned_data_for_step('0')
form = ConsummerForm(initial={'provider': data['provider']})