我正在尝试从 wtf 表单中删除一些字段:
form = super().edit_form(obj=obj)
for f in form:
if f.name not in self.form_details_columns:
del f
return form
这种方法不起作用,但是如果我使用类似的方法
del form.questin
凡
question
是字段的名称,它有效
要按名称从 wtf 表单中删除一些字段,您可以使用以下代码:
form = super().edit_form(obj=obj)
for field_name in self.form_details_columns:
form._fields.pop(field_name, None)
return form
您可以使用 del 语句删除一些 WTF 字段。我做的例子是...
from flask_wtf import FlaskForm
from wtforms import StringField, IntegerField
class MyForm(FlaskForm):
name = StringField('Name')
age = IntegerField('Age')
# Remove the "age" field from the form
form = MyForm()
del form.age
您也可以使用“弹出”来删除字段。 例子:
form._fields.pop('age')
根据其他答案,我使用以下方法解决了它:
form = super().edit_form(obj=obj)
form_columns = [f.name for f in form]
for name in form_columns:
if name not in self.form_details_columns:
form._fields.pop(name, None)
return form