所以,我从Django获得了这个JSON:
{'something' :
{'value':'somethingName','editable':'false'}
},
{'somethingElse':
{'value':'somethingElseName','editable':'true'}
}
并显示如下:
{% for key, value in obj.items %}
{{ key }} : {{ value }}
{% endfor %}
问题是{{ value }}
返回{'value':'somethingName','editable':'false'}
,我无法通过value
或editable
访问{{ value.value }}
或{{ value.editable }}
。
我想将{{ value.value }}
显示为somethingName
而不是整个JSON。
有没有办法通过Django本身访问'sub-level'JSON?
答案 0 :(得分:1)
您不能使用.
notation将模板变量名称用作字典键。 value
中的第二个value.value
不会被解释为字符串value
,因为循环中有一个变量名value
。
只需将key
和value
分别重命名为obj_key
和obj_value
:
{% for obj_key, obj_value in obj.items %}
{{ obj_key }} : {{ obj_value.value }}
{% endfor %}
演示:
>>> from django.template import Context, Template
>>> t = Template("""
... {% for obj_key, obj_value in obj.items %}
... {{ obj_key }} : {{ obj_value.value }}
... {% endfor %}""")
>>> obj = {'something' : {'value':'somethingName','editable':'false'}}
>>> t.render(Context({'obj': obj}))
u'something : somethingName'
希望有所帮助。