【问题标题】:Javascript not reading the keys and values of a dictionary in django templateJavascript没有读取django模板中字典的键和值
【发布时间】:2013-05-27 13:05:24
【问题描述】:

我有一本像这样的字典:

dest = {2: [u'canada', u'A', 'Ottawa'], 5: [u'Malaysia', u'A', 'KualaLumpur'],...}

然后我尝试使用javascript从django模板中的dest检索键和值:

function categorizeReports()
{
      var a = [];
      var b = [];
      {% for i,v in dest %}
        id = '{{i}}';
        console.log('id', id)
        values = '{{v}}';
        console.log('values',values)
        {% for name, type, cat in values %}
            if(type=='A' && cat=='Ottawa')
                {
                     a.push(id,name,type,cat)
                }
            if(type=='A' && cat=='KualaLumpur')
                {
                     b.push(id,name,type,cat)
                }

        {% endfor %}
      {% endfor %}
      console.log(a)
      console.log(b)
 }

但是两个数组都显示为'an empty string',id和值也显示为'an empty string',请帮忙!

【问题讨论】:

  • 预计你的JS代码会重复多次吗?
  • @oleg:每次模板加载时都是。
  • 我的意思是,如果您在 dest 行中有 10 个项目,例如,id = ''; console.log('id', id) values = ''; console.log('values',values) 将出现 10 次。

标签: javascript python django django-templates


【解决方案1】:

缺少 .items

改变

{% for i,v in dest %}

{% for i,v in dest.items %}

【讨论】:

  • 嗯,值将是一个列表类型。因此,您提取名称、类型和 cat 的语法将不起作用。 {{ values.0 }} 将获得名称 {{ values.1 }} 将获得类型......等等......我相信至少是这样。未测试。
猜你喜欢
  • 2019-03-28
  • 2020-10-11
  • 2015-05-23
  • 2018-04-14
  • 2018-11-15
  • 1970-01-01
  • 2011-02-27
  • 2013-11-18
  • 1970-01-01
相关资源
最近更新 更多