Python Django FormWizard无限循环

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

我使用Django 1.4.8

,但现在我需要更准确

实际上,在我的表单步骤0中,我有一个下拉列表,从中我选择了一个值,然后在步骤2,我需要加载与步骤0相同的数据,而在步骤0中没有选择的值

我是这样做的:

URL.py:

views.py

我的表格是:

现在发生了什么:

当我在表格第2步中提交数据时。。。我无限期地返回步骤2

如果我不将elif step=='2'的部分放在get_表单中,并将相同的代码放在ConsummPerform表单中:

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']})