WTForms字段默认突然不工作
问题描述:
我有以下代码:WTForms字段默认突然不工作
class ReconForm(Form):
compressedFilePath = StringField('Compressed File Path', [validators.Required()])
和我实例是这样的:
form = ReconForm()
form.compressedFilePath.default = '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)
-
要设置值是对形式的只是一个特定实例的默认,指定在实例化的价值。
class ReconForm(Form): compressedFilePath = StringField( 'Compressed File Path', [validators.Required()]) form = ReconForm(compressedFilePath='hi')
验证:
assert 'value="hi"' in str(form.compressedFilePath)
你最近有没有安装WTForms的新版本? – dirn
我不这么认为。我将其更改为.data而不是.default一段时间,然后将其更改回来并重新开始工作。它可能是与缓存或什么? – user1170304
我从来没有设置默认值,所以我不知道它曾经工作过。但是,代码通常不会自行停止工作。这就是为什么我最初的想法是,也许你升级到更新版本的WTForms。 – dirn