Python Flask WTForms:如何在视图中动态禁用字段?

时间:2013-05-07 16:45:14

标签: python flask wtforms

我已经能够实现this change来创建在WTForms中禁用的Field。在呈现之前,我如何有选择地禁用视图中的字段?

3 个答案:

答案 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)

这个答案可能有点迟了,但如果其他任何人遇到这个问题,可能会有所帮助。