如何使用jinja变量在Django模板的字典中迭代字典?

时间:2019-06-06 14:52:33

标签: json django python-3.x for-loop jinja2

我的字典看起来像这样:

a = {
            "1": {
                "league_id": "1",
                "name": "2018 Russia World Cup",
                "country": "World",
                "country_code": "",
                "season": "2018",
                "season_start": "2018-06-14",
                "season_end": "2018-07-15",
                "standings": False,
            },
            "2": {
                "league_id": "2",
                "name": "Premier League",
                "country": "England",
                "country_code": "GB",
                "season": "2018",
                "season_start": "2018-08-10",
                "season_end": "2019-05-12",
                "standings": True
            },
        }

我想遍历字典并显示“名称”和“国家”的所有值。

.html模板中的代码如下:

          {% for c in a %}
                 <thead>{{ a[c]['country'] }}</thead>
          {% endfor %}

          {% for n in a %} 
            <tr>
                <td>{{  a[n]['name'] }}</td>
            </tr>
          {% endfor %}

这给出了一个错误:

  

无法解析其余部分:“ [c] ['country']'   '同事[c] ['国家']'

我也尝试过

     {% for c in leagues %}
            <thead>{{ leagues.c.country }}</thead>
     {% endfor %}

     {% for n in leagues %}
            <tr>
                <td>{{  a.n.name }}</td>
            </tr>
    {% endfor %}

页面空白。

如何定位值的名称和国家/地区?

1 个答案:

答案 0 :(得分:0)

不使用Jinja ,您使用的是Django模板语言。

但是,这不是您在Python中遍历字典或列表的方式。当您执行for x in whatever时,x实际元素,而不是索引。另外,当您要遍历字典的值时,需要使用values方法。

 {% for league in leagues.values %}
        <thead>{{ league.country }}</thead>
 {% endfor %}

 {% for league in leagues.values %}
        <tr>
            <td>{{ league.name }}</td>
        </tr>
{% endfor %}