Jinja 字典值未显示
Jinja dictionary value not showing
我正在开发一个 Flask 应用程序,我在其中创建一个带有 RadioFields 作为选项的表单,并且我还将一个 param2
字典传递给 jinja 客户端。
我成功地将各个单选字段呈现为子字段,但我似乎无法呈现键附带的字典值的文本。
无线电场的标签也是 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>
我试图得到的输出
<> 文本标签 1 已完成
<> 文本标签 2 忙
我发现了问题。
正如@sergey-shubin 所说,form
的 subfield.label
属性 是一个 HTML 结构,
含义:
如果你打电话给 {% subfield.label %}
那么你会得到<label for="display-0">Text Label1</label>
。 <-- HTML 构造
解法:
您可以通过调用 text
方法 subfield.label.text
从构造中提取标签本身,该方法从 HTML 构造中产生 Text Label1
。
我正在开发一个 Flask 应用程序,我在其中创建一个带有 RadioFields 作为选项的表单,并且我还将一个 param2
字典传递给 jinja 客户端。
我成功地将各个单选字段呈现为子字段,但我似乎无法呈现键附带的字典值的文本。
无线电场的标签也是 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>
我试图得到的输出
<> 文本标签 1 已完成
<> 文本标签 2 忙
我发现了问题。
正如@sergey-shubin 所说,form
的 subfield.label
属性 是一个 HTML 结构,
含义:
如果你打电话给 {% subfield.label %}
那么你会得到<label for="display-0">Text Label1</label>
。 <-- HTML 构造
解法:
您可以通过调用 text
方法 subfield.label.text
从构造中提取标签本身,该方法从 HTML 构造中产生 Text Label1
。