我在WTForms TextAreaField
应用程序中使用Jinja2
呈现Flask
并且它拥有自己的HTML代码作为其预先填充的文本值,尽管是默认值property(应指定预填充值)设置为空字符串''
。
表单定义:
channels = TextAreaField('channels', default='')
Jinja2模板HTML文件:
{% for c in e.form.conditions %}
{{ c.form.channels }}
{% endfor %}
结果(呈现,对最终用户可见,应为空字符串''
):
<textarea id="channels" name="channels"></textarea>
... (other iterations)
结果(HTML):
<textarea class="form-control" id="conditions-0-channels" name="conditions-0-channels"><textarea id="channels" name="channels"></textarea></textarea>
... (other iterations)
我使用Pycharm调试器和TextAreaField进行了双重检查,整个对象显示为上面的HTML结果,即使它的所有属性都不包含可见的结果字符串(也在上面),并且default
属性是即使结果没有显示,也等于''
。
额外提示:出于某种原因,如果包含channels
字段的表单不属于FormField
中WTForms FieldList
的一部分,则此问题不会发生
答案 0 :(得分:0)
我不知道FieldList
,FormField
和TextAreaField
的这种组合究竟出了什么问题,但如果你打电话给{{ c.form.channels.data }}
(有额外的话) .data )在您的Jinja2模板HTML文件中而不是{{ c.form.channels }}
,然后一切正常。