17

我已经能够实现此更改以创建在 WTForms 中禁用的字段。如何在渲染之前选择性地禁用视图中的字段?

4

3 回答 3

23

vim表单.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()],
)
于 2017-01-22T07:38:16.963 回答
9

这几乎就像@Bibhas 提议的那样。如果我理解正确并且您想通过 html disabled 属性禁用字段,那么以下内容对我有用:

form.field(disabled=True)

这个答案可能有点晚了,但如果其他人有这个问题,它可能会有所帮助。

于 2015-10-10T16:42:03.800 回答
7

如果您尝试删除一个字段,您可以查看文档中的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`
于 2013-05-07T17:30:25.460 回答