【问题标题】:How to iterate over a python dictionary in django template如何在 django 模板中迭代 python 字典
【发布时间】:2013-07-11 11:26:11
【问题描述】:

我看到了各种各样的答案,但我无法弄清楚我目前做错了什么。我正在使用 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 或只是 items 不起作用。

编辑:问题原来是我使用整数作为字典键

但是,另一个问题仍然存在。 说我愿意

 alert({{  value  }});

在 javascript 方面。价值是“你好” 它说客户端没有定义变量名hello。它把它放在一个整体而不是一个字符串?我应该怎么做才能做到这一点?

【问题讨论】:

    标签: python django django-templates


    【解决方案1】:

    chartData 是元组列表,而不是字典。你的模板中需要这样的东西:

    {% for row in chartData %}
        console.log("{{ row.0 }}", "{{ row.1 }}");
    {% endfor %}
    

    【讨论】:

    • 其实问题出在我的key是一个整数。所以我不知道为什么,但 django 无法在模板端解析它。我还有另一个问题。假设密钥是“19-02-2014”。在日志文件中,它打印得很好。但在模板中,javascript 再次将其解析为 19-2-2014,而是输出 -1997 作为答案
    【解决方案2】:

    对于第二个问题,请尝试:

    alert('{{  value  }}');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-27
      • 2019-02-05
      • 1970-01-01
      • 2021-01-16
      • 2018-07-31
      • 1970-01-01
      • 2013-04-30
      • 2018-08-09
      相关资源
      最近更新 更多