Nic*_*ieb 5 django formwizard django-1.4
我试图根据步骤中的复选框有条件地重复Django Formwizard(Django 1.4)中的一个步骤.表单创建一个对象,并有一个复选框(希望)允许他们重复该步骤并使用相同的表单创建相同模型的另一个对象.
我看到了这个答案:Django FormWizard动态改变form_list但不幸的是我认为它只适用于旧版本的FormWizard.
process_step函数不再具有form_list属性.它也没有当前步骤属性(或步骤属性),但我可以通过表单的QueryDict访问当前步骤.它包含一个表单字典,但我不认为在该字典中插入另一个步骤会做任何事情,不幸的是,因为它是一个字典而不是列表,所以我必须在插入它之后修改每个步骤键.
那么,有没有一种方法可以使用Django 1.4 FormWizard将新步骤添加到表单列表中?
更新 - 开始考虑覆盖get_next_step(自我,步骤)可能是要走的路,但任何输入都非常感激.
更新#2 - 尝试使用get_next_step,但无法在实例的form_list中插入新表单.这并不意味着它不可能 - 想法?
结论是,这是不可能的。我还不太明白为什么它有时与前两个解决方案一起工作,但在深入研究表单向导的代码后,很明显每个请求都会重新初始化实例表单列表(嗯,从技术上讲,它是一个新实例),并且因此,即使您更新存储中的列表,或者在 get_form_list() 中更新它,也有一些调用直接命中实例变量,而不是通过 get_form_list() 访问它,并且需要进行一些重大重构来调整它。
我为这个项目走了另一条路,但可能会尝试尽快为此整合一些东西。
| 归档时间: |
|
| 查看次数: |
1013 次 |
| 最近记录: |