如何将额外的字段数据添加到Wtforms中的表单字段

时间:2015-11-23 07:53:04

标签: python forms tornado wtforms

我正在尝试将额外数据添加到wtforms中的表单字段。

我必须创建一个文本字段,其中包含一个相关的单位(例如 - 米/秒)。如何将米/秒字符串添加到表单字段?

有没有办法传递字典或其他东西来将数据添加到我可以在模板中访问的字段?

1 个答案:

答案 0 :(得分:1)

field constructor有一个不太知名的参数description=。虽然它声称是用于帮助文本,但框架本身并不关心你放在那里的东西(除了传递它之外,确实不会在任何地方使用它。)

所以你可以做,例如:

class PhysicsForm(Form):
    speed = TextField('Speed', description={'unit': 'meters/sec'})
    distance = TextField('Distance', description={'unit': 'kilometers'})

然后你可以在jinja风格的模板中使用它,如:

{{ form.speed }} <label>{{ form.speed.description.unit }}</label>

脚注没有真正的理由使用字典作为description的值 - 它只是为了说明你几乎可以放任何值,包括可以容纳的容器许多价值观。