如何在Django中使用复杂的上下文?

时间:2015-03-17 20:07:31

标签: python django django-templates django-context

我正在通过建立简单的联系人管理器来学习Django,
我使用Django 1.7.3和Python 2.7 我对如何使用给定的上下文呈现模板感到困惑。

context = {
    'name': 'John Doe',
    'age': 24,
    'email_ids' : [
        {
            'use': 'personal',
            'email': 'johndoe@example.com' 
        },
        {
            'use': 'work',
            'email': 'manager@example.com'
        },
        {
            'use': 'spam',
            'email': 'iwantyournewsletter@example.com'
        }
    ]
    'phones': [
        {
            'use': 'personal',
            'number': '+1234567890'
        },
        {
            'use': 'work',
            'number': '+1234567891'
        }
    ]
}

我的模板块是,

{% block  address_slot %}
    Name : {{ name }}
    Age : {{ age }}
    Email Address:
        {{ use }} : {{ email }}
    Phone Number: 
        {{ use}}  : {{ number }}
{% endblock %}

我不确定如何在上下文中插入dict(电子邮件详细信息和数字详细信息)列表(email_idsphones),同时我输入了名称和年龄。

在python中我使用

for email in context['email_ids']:
    print(email['email_ids'])

打印电子邮件,而Django模板中的电子邮件是什么?

如何在相关字段中插入电子邮件地址?

1 个答案:

答案 0 :(得分:2)

使用{% for %}模板标记和点符号查找每个字典中的键,EG:

{% for email_id in email_ids %}
  Email Address:
    {{ email_id.use }} : {{ email_id.email }}
{% endfor %}