我正在使用Flask应用程序创建一个包含RadioFields作为选择的表单,我还将param2
dict传递给jinja客户端。
我成功地将各个Radiofields渲染为子字段,但我似乎无法呈现密钥附带的dict值的文本。
radiofield的标签也是param2
中词典的关键,我试图将其值打印在subfield.label
文本旁边。
param2如下所示:
param2{'Text Label1': 'completed', 'Text Label2': 'busy'}
当我在页面上打印{{param2}}时,我得到了它本应该的字典。
{'Text Label1': 'completed', 'Text Label2': 'busy'}
以下是我打印子字段并调用字典的方法。
<form method="post">
<table>
{% for subfield in form.display %}
<tr>
<td> {{ form.csrf_token }} </td>
<td> {{ subfield }} {{ subfield.label }} </td>
<td> {{ param2[subfield.label] }} </td>
</tr>
{% endfor %}
</table>
<input type="submit" value="Generate">
<button type="reset" value="Reset">Reset</button>
</form>
代码呈现时,param2的<td> </td>
为空:
<tr>
<td> <input id="display-0" name="display" type="radio" value="5"> <label for="display-0">Text Label1</label> </td>
<td> </td>
</tr>
输出我试图
&LT;&GT;文字标签1已完成
&LT;&GT;文字标签2忙
答案 0 :(得分:1)
我发现了问题。
正如@ sergey-shubin所说,subfield.label
的{{1}}属性是一个HTML构造,
意思是:
如果您致电form
然后你会得到{% subfield.label %}
。 &lt; - HTML Construct
<强>解决方案:强>
您可以通过调用<label for="display-0">Text Label1</label>
方法text
从构造中提取标签本身,该方法从HTML构造中生成subfield.label.text
。