【问题标题】:Display content using Django template使用 Django 模板显示内容
【发布时间】:2015-11-09 16:52:57
【问题描述】:

我有一个 json 值发送到 django 模板,如下所示,我无法获得以表格格式显示每个键值对的解决方案。

json:

elem: {
     k1: v1,
     x: {
          abc: {
                k2: v2,
                k3, v3
               },
          efg: {
                k4, v4
               }
        }
     y: {
         qwe: {
               k5, v5
              }
        }
     }

从 Django Views 页面发送到 remplate 的上述 json 中,前端页面应以表格格式显示如下所示,

k1           v1
x
abc
k2           v2
k3           v3
efg
k4           v4
y
qwe
k5           v5

请注意,每个 (K,V) 对的输出有一行,每个键(没有它的值)有一行,它的值是一个 json 对象。

只有使用像下面这样的普通迭代,json 中的所有键都需要一个原始类型(字符串或数字)的值,但上面的 json 示例具有 json 对象本身作为某些键的值。

{% for k, v in elem.items %}
  <tr>
      <td> {{k}}</td>
      <td> {{v}}</td>
  </tr>
{% endfor %}

编辑:如果有可能在模板中递归调用上述代码来解决问题,那就太好了。

【问题讨论】:

    标签: python json django


    【解决方案1】:

    使用{% for k, v in elem.items %},您正在遍历字典键,所以我认为您应该在将 JSON 对象发送到模板上下文之前将其转换为 python 字典,否则模板逻辑会变得非常复杂。

    您应该将它转换为只有一个级别的“平面”python dict(没有任何“嵌套”dict) - 类似于:{"k1":"v1", "x":"", "abc":"", "k2":"v2", "k3": "v3"....} 最好使用 python 并使用简单的 {% for k, v in模板中的 elem.items %},而不是尝试在模板中渲染给定的 JSON

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-15
      • 2012-04-17
      • 1970-01-01
      • 1970-01-01
      • 2018-10-11
      • 2020-04-17
      • 2017-07-21
      • 2020-03-30
      相关资源
      最近更新 更多