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

six*_*arm 9 python flask wtforms

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

小智 10

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()],
)
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你!就我而言,表单已被实例化,因此我只做了“ form.my_field.render_kw = {'disabled':'disabled'}'。 (5认同)

Ewa*_*wan 6

如果您尝试删除字段,可以查看文档中的"每个实例删除字段 ".

来自文档:

有时,您创建的表单包含在所有情况下无用的字段或所有用户.虽然使用表单继承确实可以定义具有您需要的字段的表单,但有时需要调整现有表单.幸运的是,表单可以通过使用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`
Run Code Online (Sandbox Code Playgroud)

  • 谢谢.但我希望禁用该字段,而不是删除它. (4认同)

Min*_*ato 6

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

form.field(disabled=True)
Run Code Online (Sandbox Code Playgroud)

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