我看到了各种各样的答案,我无法弄清楚我目前做错了什么。我使用的是python 2.7和django 1.5.1。 以下是我的模板的代码:
{% for key, value in chartdata.items %}
key = {{ key }};
value = {{ value }};
console.log( key + ":" + value );
alert('here');
{% endfor %}
在view.py中,我将字典发送为:
chartdata= getChartData(request.session['userphone'])
log.debug(chartdata)
table=getUserInfo(request.session['userphone'],str(request.user))
return render(request,'users.html',{'table':table,'topics':request.session['topics'],'profilepic':request.session['profilepic'],'chartdata':chartdata,'time':str(time.time())})
log.debug(chartdata)在我的日志文件中返回以下结果:
[11/Jul/2013 16:49:12] DEBUG [karnadash.views:179] [(85, '2013-07-08'), (120, '2013-07-08'), (205, '2013-07-08'), (305, '2013-07-08'), (405, '2013-07-08'), (505, '2013-07-08'), (547, '2013-07-09'), (564, '2013-07-09'), (581, '2013-07-09'), (607, '2013-07-09'), (624, '2013-07-09'), (659, '2013-07-09'), (694, '2013-07-09'), (711, '2013-07-09'), (737, '2013-07-09'), (754, '2013-07-09'), (771, '2013-07-09'), (871, '2013-07-09')]
任何人都可以指出我的代码中有什么问题。
我发现以下问题与我的几乎相同,我尝试了解决方案。
What's wrong here? Iterating over a dictionary in Django template
我也试过使用:chartdata.iteritems,但它有类似的效果。 我没有收到错误。 它永远不会进入那个循环。 当我执行console.log(chartdata)时,它会在浏览器控制台中显示一些解析错误('& error something')但在一些垃圾数据中我可以找到包含数据的字典。但是iteritems或者只是项目不起作用。
编辑:问题原因是我使用整数作为字典键
然而另一个问题仍然存在。 说我做
alert({{ value }});
在javascript方面。价值是“你好” 它表示客户端没有定义变量名称hello。它把它整体而不是字符串?我该怎么做才能做到这一点?
答案 0 :(得分:1)
chartData
是一个元组列表,而不是一个字典。您需要在模板中使用以下内容:
{% for row in chartData %}
console.log("{{ row.0 }}", "{{ row.1 }}");
{% endfor %}
答案 1 :(得分:0)
关于第二个问题,请尝试:
alert('{{ value }}');