python - 基于输入参数的Flask WTForms FieldList不起作用
问题描述
我正在尝试实例化一个包含 FieldList 的 Flask Form,我想根据附加的输入参数更改 FormField。在这篇文章之后,我的设置如下所示:
class Child1(FlaskForm):
class Meta:
csrf = False
field = SelectField()
class Child2(FlaskForm):
class Meta:
csrf = False
field = StringField()
class Parent(FlaskForm):
field_list_form = FieldList(FormField(Child1))
def __init__(self, select_child="child1", *args, **kwargs):
super().__init__(*args, **kwargs)
if select_child == "child2":
self.field_list_form = FieldList(FormField(Child2))
现在在我的 Flask 应用程序中,当我使用默认参数时,这样做可以正常工作
form = Parent()
for idx in range(42):
form.field_list_form.append_entry({})
但是做的时候
form = Parent(select_child="child2")
for idx in range(42):
form.field_list_form.append_entry({})
我明白了
AttributeError: 'UnboundField' object has no attribute 'append_entry'
我应该如何以不同的方式做到这一点?
解决方案
推荐阅读
- javascript - 无法使用 API 读取未定义的属性“forEach”
- sql - 如何从 SNOWFLAKE 的 SQL 表中的 json 字段中选择某些键/值对
- node.js - 节点 js 中未定义 ERR
- jquery - 添加的表格行最终在表格上方而不是在表格中
- scala - 在Scala中使用函数样式查找与谓词匹配的所有两个集合对
- r - 重塑R中的多列
- kubernetes-helm - Helm 在 llops 中使用模板函数
- tinymce - 如何限制 tinyMCE 中的缩进
- spring-boot - SprintBoot kafka 值序列化器
- bash - Cygwin:Up Key 仅显示以编程方式添加到 bash 历史记录中的最后一个命令