我一直在尝试将SessionWizardView用于一个多步骤表单,以便进行长时间的注册过程。我在初始化时使用了2个ModelForms和instance。在
以下是源代码: https://djangosnippets.org/snippets/1078/
文档告诉我用表单数据(表单列表)做一些事情,但是不能在这里保存数据。在
class ContactWizard(SessionWizardView):
def done(self, form_list, **kwargs):
do_something_with_the_form_data(form_list)
return HttpResponseRedirect('/page-to-redirect-to-when-done/')
问:如何在django1.7中使用SessionWizardView将数据保存到数据库?在
done
方法的form_list参数是属于向导一部分的表单对象的列表(存储在向导实例的self.form_列表属性)。在如果您有一个由两个modelforms组成的向导,form_list将有两个modelform实例。在
您可能想对这些modelforms调用“save”方法。在
form_list属性是OrderedDict。我不确定是否总是这样,但是使用NamedUrlWizard,表单也在元组(url_name,form_object)内部。在
因此,为了在每个窗体上调用
save()
方法,您可以:顺便说一句,你链接到的代码片段确实被添加到了django中设计工具,它随cookie或会话存储一起提供。然而,django1.8这个包被拆分成django-formtools。在
相关问题 更多 >
编程相关推荐