2

关于这个似乎有一百万个问题(和答案),但没有一个对我有用。

我有这样的事情:

test_dict = {'name':'Joe'}
return render_to_response('home.html',test_dict,context_instance=RequestContext(request))

在模板中,我正在尝试这样做:

{% for k,v in test_dict.items %}
  Hello {{ v }} <br />
{% endfor %}

但没有运气。另一方面,这有效:

Hello {{ name }}

(没有 for 循环)。我一定错过了一些非常明显的东西吗?

编辑
为了回应第一个答案,我也试过这个:

test_dict = {'name':'Joe'}
data = {'test_dict':test_dict}

return render_to_response('home.html',data,context_instance=RequestContext(request))

在模板中:

{% block content %}
  {% for k, v in data.items %}
    Hello {{ v }} <br />
  {% endfor %}
{% endblock %}

还是什么都没有出现。

4

2 回答 2

2

做你想做的事,你会想要像

data = {'test_dict':test_dict}
return render_to_response('home.html',data,context_instance=RequestContext(request))

文档

要添加到模板上下文的值字典。

因此,在您的示例中, test_dict 被注入到模板上下文中。想想它是这样工作的:

template = Template()
for k, v in dictionary.items():
    template[k] = v

所以 test_dict 没有被注入到模板的上下文中,但是 test_dict 的键和值被注入了。

于 2012-04-17T01:31:20.663 回答
0

什么时候:

test_dict = {'name':'Joe'}
data = {'test_dict':test_dict}

return render_to_response('home.html',data,context_instance=RequestContext(request))

采用:

{% for k, v in test_dict.items %}
于 2012-04-18T19:44:45.153 回答