关于这一点似乎有一百万个问题(和答案),但它们都不适合我。
我有这样的事情:
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 }}
(No for loop)。我一定错过了一些非常明显的东西吗?
修改
在回答第一个答案时,我也试过了:
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 %}
仍然没有出现。
答案 0 :(得分:2)
要做你想做的事,你会想要像
这样的东西data = {'test_dict':test_dict}
return render_to_response('home.html',data,context_instance=RequestContext(request))
来自docs
要添加到模板上下文的值的字典。
因此,在您的示例中,test_dict被注入到模板上下文中。想想它的工作原理如下:
template = Template()
for k, v in dictionary.items():
template[k] = v
因此test_dict没有注入到模板的上下文中,但是test_dict的键和值是。
答案 1 :(得分: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 %}