我有以下代码:
class ReconForm(Form):
compressedFilePath = StringField('Compressed File Path', [validators.Required()] )
我将它实例化为:
form = ReconForm()
form.compressedFilePath.default = 'hey'
它什么都不做。它曾经将默认值设置为嘿但是它停止了,我不知道为什么。
如果我打印form.compressedFilePath.default,则会打印正确的值。如果我在字段构造函数中设置了默认值,则模板会呈现正确的值。否则它什么都不做,它让我发疯。
我做错了什么?
答案 0 :(得分:4)
以下是我使用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)
答案 1 :(得分:0)
这个问题确实很老,但是有一个更简单的方法-设置默认值后,只需在表单上调用process()
。