TextAreaField自身呈现(可读文本格式的HTML代码)作为其预填充文本值

时间:2017-08-17 13:18:14

标签: html textarea jinja2 flask-wtforms

我在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">&lt;textarea id="channels" name="channels"&gt;&lt;/textarea&gt;</textarea>
... (other iterations)

我使用Pycharm调试器和TextAreaField进行了双重检查,整个对象显示为上面的HTML结果,即使它的所有属性都不包含可见的结果字符串(也在上面),并且default属性是即使结果没有显示,也等于''

额外提示:出于某种原因,如果包含channels字段的表单不属于FormFieldWTForms FieldList的一部分,则此问题不会发生

1 个答案:

答案 0 :(得分:0)

我不知道FieldListFormFieldTextAreaField的这种组合究竟出了什么问题,但如果你打电话给{{ c.form.channels.data }}(有额外的话) .data )在您的Jinja2模板HTML文件中而不是{{ c.form.channels }},然后一切正常。