- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试根据步骤中的复选框有条件地重复 Django Formwizard (Django 1.4) 中的一个步骤。该表单创建一个对象,并有一个复选框(希望如此)允许他们重复该步骤并创建具有相同表单的相同模型的另一个对象。
我看到了这个答案:Django FormWizard Dynamically Alter form_list但不幸的是,我认为它只适用于旧版本的 FormWizard。
process_step 函数不再具有 form_list 属性。它也没有当前步骤属性(或步骤属性),但我可以通过表单的 QueryDict 访问当前步骤。它包含一个表格字典,但我认为在该字典中插入另一个步骤不会做任何事情,不幸的是,由于它是一个字典而不是一个列表,我必须在插入它之后修改每个步骤的键。
那么,有没有一种使用 Django 1.4 FormWizard 将新步骤添加到表单列表中的好方法?
更新 - 开始认为覆盖 get_next_step(self, step) 可能是要走的路,但任何输入都非常感谢。
更新 #2 -- 尝试使用 get_next_step,但无法将新表单插入实例的 form_list。并不意味着这是不可能的 - 想法?
最佳答案
嗯,我想到了一些东西。您可以覆盖 get_form_list 以将内容插入表单列表,但您必须将它们保存在 self.form_list 中,并且只返回 form_list。就我的目的而言,这没问题,但如果您也使用 conditional_dict,则此处必须小心。
def get_form_list(self):
s = self.storage.current_step
s_data = self.get_cleaned_data_for_step(s) or {}
add_another = s_data.get('add_another', False)
if add_another is True:
index = self.form_list.keyOrder.index(s)+1
key = "add_another-{0}".format(index)
self.form_list.insert(index, key,
wizard_forms.Wizard4)
form_list = super(Wizard, self).get_form_list()
return form_list
关于django - 如何在 Django Formwizard 1.4 中动态重复步骤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13052224/
我是一名优秀的程序员,十分优秀!