get_context_data()我认为,更合适的
get_form()方法是在向导视图中实现方法,并根据步骤和先前的数据返回不同的表单实例,而不是更改中的表单列表等。
像这样:
class UserServiceWizard(SessionWizardView): instance = None def get_form(self, step=None, data=None, files=None): if step is None: step = self.steps.current prev_data = self.get_cleaned_data_for_step(self.get_prev_step( self.steps.current)) if step == '1': service_name = str(prev_data['provider']).split('Service')[1] form_class = class_for_name('th_' + service_name.lower() + '.forms', service_name + 'ProviderForm') form = form_class(data) elif step == '3': service_name = str(prev_data['consummer']).split('Service')[1] form_class = class_for_name('th_' + service_name.lower() + '.forms', service_name + 'ConsummerForm') form = form_class(data) else: form = super(UserServiceWizard, self).get_form(step, data, files) return form
这里的技巧是不更改表单列表的长度(您已正确完成),而只是更改表单实例。Django
get_form()为此提供了重写方法的方法。Django将采用此方法,并始终使用它来获取该方法的表单实例。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)