我在我的应用程序中使用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不存在。我的问题是双重的;我如何能够克服不存在列表索引的问题,以及如何使代码更高效?
非常感谢
答案 0 :(得分:0)
form_list
语句迭代for
。