Flask WTForms字段默认值为';行不通
我有以下代码:Flask WTForms字段默认值为';行不通,flask,wtforms,flask-wtforms,Flask,Wtforms,Flask Wtforms,我有以下代码: class ReconForm(Form): compressedFilePath = StringField('Compressed File Path', [validators.Required()] ) 我将其实例化如下: form = ReconForm() form.compressedFilePath.default = 'hey' 它什么也不做。它曾经将默认值设置为hey,但后来它停止了,我不知道为什么 如果我打印form.compressedFile
class ReconForm(Form):
compressedFilePath = StringField('Compressed File Path', [validators.Required()] )
我将其实例化如下:
form = ReconForm()
form.compressedFilePath.default = 'hey'
它什么也不做。它曾经将默认值设置为hey,但后来它停止了,我不知道为什么
如果我打印form.compressedFilePath.default,那么它将打印正确的值。如果在字段构造函数中设置默认值,模板将呈现正确的值。否则它什么都不做,让我发疯
我做错了什么?以下是我知道的使用WTForms为字段设置默认值的两种方法
class ReconForm(Form):
compressedFilePath = StringField(
'Compressed File Path', [validators.Required()], default='hi')
form = ReconForm()
要验证:
assert 'value="hi"' in str(form.compressedFilePath)
assert 'value="hi"' in str(form.compressedFilePath)
class ReconForm(Form):
compressedFilePath = StringField(
'Compressed File Path', [validators.Required()])
form = ReconForm(compressedFilePath='hi')
要验证:
assert 'value="hi"' in str(form.compressedFilePath)
assert 'value="hi"' in str(form.compressedFilePath)
这是一个很老的问题,但有一个更简单的方法-在设置默认值后,只需在表单上调用
process()
。您最近安装了更新版本的WTForms吗?我不这么认为。我将它改为.data而不是.default一段时间,然后又改回来,它又开始工作了。这可能与缓存或其他什么有关吗?我从来没有这样设置过默认值,所以我不知道它曾经工作过。不过,代码本身通常不会停止工作。这就是为什么我最初的想法是,也许您升级到了WTForms的新版本。