我有一个字典,我传递给一个看起来像这样的模板:
HUE
我需要它是一个看起来像的列表:
0000000: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
0000010: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
0000020: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
等等。
我能得到的最接近的是
{'leasee': {'respond': {'hour': True, 'day': True}, 'contact': {'phone': True, 'facebook': True, 'email': True, 'other': True, 'text': True}, 'licence': '987654321', 'help': {'beautySupplyProvider': True, 'photographer': True}, 'phoneNumber': '12345678910', 'name': 'Chris', 'certifications': {'yes': True, 'long': 'All of them'}, 'profession': {'massageTherapist': True, 'nailTechnician': True, 'barber': True}, 'amenities': {'receptionist': True, 'retailDisplayShelfSpace': True, 'long': 'some words', 'other': True, 'highTrafic': True}, 'email': 'chris@internet.com', 'circleData': '(45.5144493,-122.6710338) 400', 'compare': {'uniqueVsChic': '1', 'teamVsSolo': '1', 'familyVsUpscale': '8'}}}
但是只有一个值而不是其他字典作为值的键不显示。我怎样才能做到这一点?
我只是想在这里添加我的问题的答案,万一有人遇到这个问题。感谢Animesh Sharma!
我必须创建一个模板标记,用于确定我循环的数据类型。它看起来像这样。
Key:
Value
Key:
Value
Value
Value
像魅力一样。
答案 0 :(得分:2)
您需要定义一个返回数据类型的自定义模板标记。
from django import template
register = template.Library()
@register.filter
def data_type(value):
return type(value)
然后在模板中使用它,如下所示:
{% for key, value in leasee.items %}
<p> {{key}} </p>
<ul>
{%if value|data_type == 'dict' %}
{% for k2, v2 in value.items %}
<li> {{ k2 }} </li>
{%if v2|data_type == 'dict'%}
{% for k3, v3 in v2.items %}
<li>{{ k3 }}:{{ v3 }}</li>
{% endfor %}
{%else%}
<li>{{v2}}</li>
{%endif%}
{% endfor %}
{%else%}
<li>{{value}}</li>
{%endif%}
</ul>
{% endfor %}
答案 1 :(得分:1)
我建议您为此实施custom template tag。
在此标记内,您可以根据其结构正确呈现数据。