问题描述
我有一个带有FieldList的表单。我需要操纵该字段列表,并已阅读该说明,您需要创建一个新的FieldList并将记录从旧记录复制到其中。但是,当我创建FieldList的新实例时,它以旧FieldList中值的副本开始。我希望它以空列表开头。为什么要从其他实例复制值?这是我表格的缩写:
class MatchRuleForm(FlaskForm):
and_or_selector = SelectField(label="AND/OR",choices=[('AND','AND'),('OR','OR')],default='AND')
table = SelectField(label='Table Column')
comparator = StringField(label='Equals',default='=',render_kw={"disabled": True})
class MatchRulesAllForm(FlaskForm):
tbl_name = HiddenField(label='Table Name')
rules = FieldList(unbound_field=FormField(form_class=MatchRuleForm),min_entries=0)
这是我的代码,在该代码中实例化FieldList的新版本...
new_list = forms.MatchRulesAllForm().rules
但是,当我这样做时,new_list以MatchRulesAllForm现有实例中已经存在的规则的副本开始。这似乎是实际副本,而不是对现有实例的引用,因为我可以消除new_list中的记录,并且它不会影响原始实例。实际上,我已经用下面的代码临时解决了这个问题,该代码清空了新列表,但不影响原始列表...
for rule in range(0,len(new_list)):
new_list.pop_entry() # Can't create with an empty list BUT we need an empty list!
那么,我在这里想念什么?这是预期的行为吗? (顺便说一句,我对OO很陌生,也许有些东西我没有得到?)谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)