我在我的应用程序中使用 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是不存在的。我的问题有两个;一是如何克服不存在列表索引的问题,二是如何使代码更高效?
非常感谢