Django wizardview:如何在不验证表单的情况下设置步骤数据

时间:2015-02-09 01:47:08

标签: django forms django-formwizard

我想要做的是我有一个视图,其中有一个快捷方式,要求用户在用户重定向到向导表单之前预先填充一些字段。

例如:

class PreFillView():

    def post(self,request):
        # get the data from the form and save into request.session
        # Then http redirect to the wizard view

然后从这个视图中,我将它重定向到WizardView。在向导视图中,我捕获从调度函数中的上一个视图传入的所有信息:

class MyWizardView(NamedUrlSessionWizardView):
     def dispatch(self,request, *args, **kwargs):
        #parse data from request.session
        #set step data using these data
   # Note these data fields only partially covered the form in the wizardview, there is still a couple of fields needed to be filled in the wizard view. 

这几乎可以正常工作,但唯一的问题是它验证了表格并弹出了未预先填充的字段的字段错误。我试过,如果我只重定向到向导视图而不设置步骤数据,那很好。它不会验证表单,因此不会显示任何字段错误。

我是Django的新手并且不确定我是否做了正确的事情,如果是的话,在设置​​当前步骤的步骤数据后,如何避免表单被验证?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

在向导视图类中实现WizardView.get_form_initial(step)方法。

此方法获取step个数字作为参数,它应返回该步骤表单的初始数据的dict。