栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Django FormWizard如何动态更改form_list

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django FormWizard如何动态更改form_list

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将采用此方法,并始终使用它来获取该方法的表单实例。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/668262.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号