0

我在我的应用程序中使用 Django 的表单向导。总共有五个表格,但是只能提交三个或四个表格,因为可以根据特定条件跳过其中两个表格,或者可以根据特定条件跳过两个表格中的一个表格。

SessionWizardView的done方法返回的列表内容如下:

[<test.myapp.models.AForm object at 0x0177EC10>, <test.myapp.models.BForm object at 0x01796150>, <test.myapp.models.CForm object at 0x01796530>, <test.myapp.models.DForm object at 0x01796910>, <test.myapp.models.EForm object at 0x01333540>]

为了保存表格,我正在执行以下操作:

a = form_list[0].save(commit=False)
a.save()

b = form_list[1].save(commit=False)
b.parent_id = a
b.save()

c = form_list[2].save(commit=False)
c.parent_id = a
c.save()

d = form_list[3].save(commit=False)
d.parent_id = a
d.save()

d = form_list[4].save(commit=False)
d.parent_id = a
d.save()

如您所知,如果仅提交四个表单,则列表索引 4 不存在,并且我收到“列表索引超出范围”错误,同样如果仅提交三个表单列表索引 3 和 4是不存在的。我的问题有两个;一是如何克服不存在列表索引的问题,二是如何使代码更高效?

非常感谢

4

1 回答 1

0

嗯,你可以遍历你的form_listusingfor语句。

于 2011-09-01T23:00:53.787 回答