我有以下格式的字典:
{
'P1': {'A': [1,10], 'B': [4,5], 'C': [8,12]},
'P2': {'A': [1,10], 'E': [4,5], 'G': [8,12]},
'P3': {'C': [1,10], 'D': [4,5], 'J': [8,12]}
}
和这样的HTML表设置:
<table>
<thead>
<tr>
<th></th>
</tr>
<tr>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
<th>E</th>
<th>F</th>
<th>G</th>
<th>H</th>
<th>I</th>
<th>J</th>
</tr>
</thead>
.
.
.
我想做的是在正确的“单元格”上输出P的字母,基本上数据应该以正确的字母输入,如下所示:
Player | A | B | C | D | E | F | G | H | I | J |
P1 | 1 | 4 | 8 | | | | | | | |
P2 | 1 | | | | 4 | | 8 | | | |
P3 | | | 1 | 4 | | | | | | 8 |
我尝试过但是失败了:
{% for k,v in p_dataset.items %}
<tr>
<td>{{k}}</td>
{% for letter, vals in v.items %}
<td>{% if letter == 'A' %}{{vals}}{% endif %}</td>
<td>{% if letter == 'B' %}{{vals}}{% endif %}</td>
<td>{% if letter == 'C' %}{{vals}}{% endif %}</td>
<td>{% if letter == 'D' %}{{vals}}{% endif %}</td>
<td>{% if letter == 'E' %}{{vals}}{% endif %}</td>
<td>{% if letter == 'F' %}{{vals}}{% endif %}</td>
<td>{% if letter == 'G' %}{{vals}}{% endif %}</td>
<td>{% if letter == 'H' %}{{vals}}{% endif %}</td>
<td>{% if letter == 'I' %}{{vals}}{% endif %}</td>
<td>{% if letter == 'J' %}{{vals}}{% endif %}</td>
{% endfor %}
</tr>
{% endfor %}
但是我得到的很多东西都超过了tds,我应该怎么做?
编辑:考虑一下,也许我可以将所有子项添加为空并在视图上更新它们,但是还有另一种方法吗?
答案 0 :(得分:0)
感谢Chiefir的想法,我最终像这样解决了它:
{% for k,v in p_dataset.items %}
<tr>
<td>{{k}}</td>
<td>{% if v.A %}{{v.A|join:' '}}%{% endif %}</td>
<td>{% if v.B %}{{v.B|join:' '}}%{% endif %}</td>
<td>{% if v.C %}{{v.C|join:' '}}%{% endif %}</td>
<td>{% if v.D %}{{v.D|join:' '}}%{% endif %}</td>
<td>{% if v.E %}{{v.E|join:' '}}%{% endif %}</td>
<td>{% if v.F %}{{v.F|join:' '}}%{% endif %}</td>
<td>{% if v.G %}{{v.G|join:' '}}%{% endif %}</td>
<td>{% if v.H %}{{v.H|join:' '}}%{% endif %}</td>
<td>{% if v.I %}{{v.I|join:' '}}%{% endif %}</td>
<td>{% if v.J %}{{v.J|join:' '}}%{% endif %}</td>
</tr>
{% endfor%}