使用WTForms RadioField子字段在Flask中显示图像

时间:2018-04-27 19:08:16

标签: python flask flask-wtforms wtforms

我正在使用WTForm表单尝试将路径传输到我想要以HTML格式显示的图像。我的表单看起来基本上就像这个

from flask_wtf import FlaskForm
from wtforms import RadioField

class SelectStyleForm(FlaskForm):
     images = RadioField('style image.',
                         choices=[(value1, label1),(value2, label2),...])

我的目标是迭代不同的选项,以显示与相应单选按钮旁边的每个路径相关联的图像。我的HTML模板如下所示:

 {% block content %}

 <form method=post>
      {% for subfield in styleform.images %}
           <td>{{subfield}}</td>
           <p>{{subfield.label}}</p>
           <img src="{{url_for('data_path', filename=subfield.label)}}"/>
      {% endfor %}
 </form>
 {% enblock %}

现在,单选按钮与文件名(显示在<p>标签中)一起显示,但是找不到让{{1}同名的方法的方法}}

现在,它所指的价值是:

filename

有没有办法影响<label for="images-1">value1</label> 函数中的“正确”值? 请注意,我也会接受使用url_for部分不同选项的解决方案,因为它们应该是相同的路径

1 个答案:

答案 0 :(得分:0)

Alrigth,通过摆弄不同的方法,我发现每个子字段都有一个data属性,用于存储label部分的字符串。

所以我的代码只需改变图像的来源即可:

<img src="{{url_for('data_path', filename=subfield.data)}}"/>

我最好的猜测是.label属性已经归因于url_for函数中的其他内容,并且阻止它访问与标签对应的字符串。

如果我错了,请随时纠正我,或者不要犹豫,发布更详细的答案!