我已经能够实现this change来创建在WTForms中禁用的Field。在呈现之前,我如何有选择地禁用视图中的字段?
答案 0 :(得分:7)
vim forms.py:
add_time = DateTimeField(
'添加时间',
format='%Y-%m-%d %H:%M:%S',
default=datetime.datetime.now(),
# I use bs3,and it well add input an attribute disabled
render_kw={'disabled':''},
validators=[DataRequired()],
)
答案 1 :(得分:6)
如果您要删除字段,可以查看文档中的Removing Fields Per-instance。
来自文档:
有时,您创建的表单包含无用的字段 所有情况或所有用户。虽然确实有可能 表单继承以定义具有您需要的字段的表单, 有时需要调整现有表格。幸运的是, 表单可以在实例化后使用del删除字段 关键字:
class MagazineIssueForm(Form):
title = TextField()
year = IntegerField('Year')
month = SelectField(choices=MONTHS)
def edit_issue():
publication = get_something_from_db()
form = MagazineIssueForm(...)
if publication.frequency == 'annual':
del form.month`
答案 2 :(得分:6)
这几乎和@Bibhas提议的一样。 如果我理解正确并且您想要通过html disabled属性禁用字段,那么以下内容对我有用:
form.field(disabled=True)
这个答案可能有点迟了,但如果其他任何人遇到这个问题,可能会有所帮助。