在Django模板中使用点表示法访问字典时遇到问题

时间:2012-07-10 02:13:59

标签: django

我在使用模板语言点符号访问字典中的值时遇到问题。

以下是我的一本词典的例子:

{2L: {'dob': datetime.date(2012, 7, 7), 'image': u'', 'user_id': 3L, 'id': 2L, 'email': u'blank@blank.com'}, 3L: {'dob': datetime.date(2012, 7, 7), 'image': u'', 'user_id': 4L, 'id': 3L, 'email': u'blank@blank.com'}}

我在Python中访问它的方式是这样的:

D[2]['email']

以下是我在模板中尝试过的内容:

{% for d in D %}
    {% if d == a.user_id %} {{ D.d.email }} {% endif %}
{% endfor %}

它没有打印出任何东西......(我通过在执行块中添加一些HTML来测试我的布尔值计算为True。

你能帮我写下这个符号吗?我知道这一点:{{ D.d.email }}这是错误的。

谢谢。

1 个答案:

答案 0 :(得分:5)

你不希望{{ D.d.email }}查找D ['d']。 Django模板中没有语法可以将变量用作键。

使用此:

{% for d,v in D.items %}
    {% if d == a.user_id %} {{ v.email }} {% endif %}
{% endfor %}