首页 > 解决方案 > Django如何在模板中渲染字典

问题描述

我有这本词典

data={
    'user': user.username,
    'punti_capitano': {'nome_capitano':team.capitano.display_name,'lista_punti':point_cap_list},
    'punti_rider2': {'nome_rider2':team.rider_2.display_name,'lista_punti':point_rider2_list},
    'punti_rider3': {'nome_rider3':team.rider_3.display_name,'lista_punti':point_rider3_list},
    'punti_rider4': {'nome_rider4':team.rider_4.display_name,'lista_punti':point_rider4_list},
    'punti_rider5': {'nome_rider5':team.rider_5.display_name,'lista_punti':point_rider5_list},
    'punti_rider6': {'nome_rider6':team.rider_6.display_name,'lista_punti':point_rider6_list},
    'punti_rider7': {'nome_rider7':team.rider_7.display_name,'lista_punti':point_rider7_list},
    'punti_rider8': {'nome_rider8':team.rider_8.display_name,'lista_punti':point_rider8_list},
    'punti_rider9': {'nome_rider9':team.rider_9.display_name,'lista_punti':point_rider9_list},
}

现在我想创建一个HTML包含所有这些元素的表格。我怎么做?

我试过这样:

<h3>Capitano :{{data.punti_capitano.nome_capitano}} Totale:{{data.punti_capitano.lista_punti.TOT}}</h3>
{% for key,value in data.punti_capitano.lista_punti.items %}
    {% if key != 'TOT' %}
        {{key}} : {{value}}
    {% endif %}
{%endfor%}
<h3>rider_2 :{{data.punti_rider2.nome_rider2}} Totale:{{data.punti_rider2.lista_punti.TOT}}</h3>
{% for key,value in data.punti_rider2.lista_punti.items %}
    {% if key != 'TOT' %}
        {{key}} : {{value}}
    {% endif %}
{%endfor%}
<h3>rider_3 :{{data.punti_rider3.nome_rider3}} Totale:{{data.punti_rider3.lista_punti.TOT}}</h3>
{% for key,value in data.punti_rider3.lista_punti.items %}
    {% if key != 'TOT' %}
        {{key}} : {{value}}
    {% endif %}
{%endfor%}

etc etc

但我想要更自动的东西

标签: pythondjangodjango-templates

解决方案


在模板中调用上下文字典后,您只需使用 django 模板语言在该字典上循环。

例如:

<table>
{% for element in data %}
 <tr>
    <td>element.user</td>
  </tr>
{% endfor %}
</table>

推荐阅读