0

我有一个场景,其中用于步骤的表单仅在运行时已知。目前,form_list对于每个step. 但是在更新的需求中,每个step都有一些运行时逻辑来确定对应的form_class. 我正在考虑一种form_list动态更新的方法。

我尝试覆盖 get_form_list,它使用运行时逻辑来确定表单,并相应地修改 form_list。

网址.py

named_forms = views.FormView.form_list

contact_wizard = views.FormView.as_view(named_forms,
                                                url_name=<the url name>,
                                                done_step_name='finished')

url-patterns = [
    path('path', contact_wizard, name='form1')
]

向导

class FormView(NamedUrlSessionWizardView,):
    form_list = (                           //static one
        ("step-one", FormStepOne),
        ("step-two", FormStepTwo),
        ("step-three", FormStepThree),
    )

    def get_form_list(self):          //updates form_list according to some logic
        self.form_list = OrderedDict()
        self.form_list["step-one"] = 
            self.integration_class.step_one_form_class
        self.form_list["step-two"] = 
            self.integration_class.step_two_form_class
        self.form_list["step-three"] = 
            self.integration_class.step_three_form_class
        return super().get_form_list()

Form_list 正在正确更新,但未根据新的表单列表呈现表单。渲染的表单仅从旧的静态 form_list 中获取。

4

0 回答 0