Python 使用django WizardForm是scneario的正确选择吗?

Python 使用django WizardForm是scneario的正确选择吗?,python,django,django-forms,Python,Django,Django Forms,我试图在django中创建动态/复杂表单 基本上我会有像ServerInfoForm,OperatingSystemForm,ApplicationForm这样的表单 这取决于用户如何填写,将显示其他表单 例如,如果用户选择RedHat操作系统,则下一步将显示RedHatForm,如果选择MySQL和Apache等应用程序,则MySQLForm和ApacheForm将显示在RedHatForm之后 从google'ing看来,WizardForm视图似乎是最好的答案 但我担心这些表单将变得复杂,

我试图在django中创建动态/复杂表单

基本上我会有像ServerInfoForm,OperatingSystemForm,ApplicationForm这样的表单

这取决于用户如何填写,将显示其他表单

例如,如果用户选择RedHat操作系统,则下一步将显示RedHatForm,如果选择MySQL和Apache等应用程序,则MySQLForm和ApacheForm将显示在RedHatForm之后

从google'ing看来,WizardForm视图似乎是最好的答案

但我担心这些表单将变得复杂,无法用WizardFormView维护,因为我们有6个不同的操作系统和30个不同的应用程序。这将随着时间的推移而增长。一开始大约是36张表格,所以我想知道是否有更好的方法


感谢

我们最近遇到了类似的问题(分类广告,每个部分都有动态表单/字段-即汽车(品牌、型号、年份、颜色等)、房屋(NBU房间、花园等),并使用臭名昭著的实体属性值(反)模式()解决了这个问题

在我们的例子中,我们有与“部分”(“汽车”、“房屋”等)关联的“字段”模型(make、model等),每个“字段”都配置了一个标签、“字段类型”(负责构建表单字段、执行验证和存储/检索值的实现类的名称)和一些特定于字段类型的配置(存储为json使我们的情况更糟)。如果您不知道自己在做什么,那么它有点难看,而且很容易弄糟,但是它很好(有很多单元测试和集成测试),并且很少是硬编码的

更糟糕的是,增加的复杂性和脆弱性是另一个争论——我们的客户坚持要有一个“完全可配置的系统”,但——令人惊讶的是——到目前为止,从未费心重新配置任何东西