如何访问神社中的字典值?可不可以?如果可能的话怎么办?

How to access dictionary value in jinja? Is it possible or not? If possible then how?

我正在尝试在 Django 项目中使用此代码片段。
如何访问每个键的值(列表)?
并显示列表项?

我想使用 Jinja 显示这样的 table。 可能吗?

key values
100 1,2
200 3,4
300 5,6
400 7,8

table 中可以有数千行。

def index(request):

    data = {
        100: [{'childId': 1, 'childStructure': 'Leaf'}, {'childId': 2, 'childStructure': 'Intermediate'}],
        200: [{'childId': 3, 'childStructure': 'Intermediate'}, {'childId': 4, 'childStructure': 'Leaf'}],
        300: [{'childId': 5, 'childStructure': 'Leaf'}, {'childId': 6, 'childStructure': 'Intermediate'}],
        400: [{'childId': 7, 'childStructure': 'Intermediate'}, {'childId': 8, 'childStructure': 'Leaf'}],
    }

    return render(request,'index.html', {'data': data})

您可以使用 for 循环字典。您只需使用 dict.items() 即可,as pointed in the documentation

给定模板:

<table style="border: 1px solid">
  <tr>
    <th>key</th>
    <th>value</th>
  </tr>
{% for key, value in data.items %}
  <tr>
    <td>{{ key }}</td>
    <td>{{ value | map(attribute='childId') | join(',') }}</td>
  </tr>
{% endfor %}
</table>

这会给你:

<table>
  <tr>
    <th>key</th>
    <th>value</th>
  </tr>
  <tr>
    <td>100</td>
    <td>1,2</td>
  </tr>
  <tr>
    <td>200</td>
    <td>3,4</td>
  </tr>
  <tr>
    <td>300</td>
    <td>5,6</td>
  </tr>
  <tr>
    <td>400</td>
    <td>7,8</td>
  </tr>
</table>