0

我正在使用 django 1.3 和 django-formwizard。我有一个带有 2 个 ModelForms 的 WizardView,它在创建模式下工作正常(在 url conf 中链接 as_view),但我无法让它在编辑模式下工作。当我在视图中这样做时:

return MyWizard.as_view([Form1,Form2], instance_dict={0:instance1, 1:instance2})(request)

如果我这样做,则上下文中不存在向导实例:

return MyWizard([Form1,Form2], instance_dict={0:instance1, 1:instance2})

我得到: init () 正好采用 1 个非关键字参数(给定 2 个)

MyWizard 非常基础,它只有get_template_namesdone方法。

4

1 回答 1

0

看起来 FormWizard 构造函数接受一个名为的关键字参数initial,没有别的,这是一个到初始数据字典的字典映射步骤。

def __init__(self, form_list, initial=None):

https://docs.djangoproject.com/en/1.3/ref/contrib/formtools/form-wizard/#providing-initial-data-for-the-forms

>>> from testapp.forms import ContactForm1, ContactForm2, ContactWizard
>>> initial = {
...     0: {'subject': 'Hello', 'sender': 'user@example.com'},
...     1: {'message': 'Hi there!'}
... }
>>> wiz = ContactWizard([ContactForm1, ContactForm2], initial=initial)
>>> form1 = wiz.get_form(0)
>>> form2 = wiz.get_form(1)
于 2011-07-07T15:50:23.000 回答