如何比较迭代器的内部和迭代器的外部

时间:2015-05-30 11:36:34

标签: python django django-templates

我将模板代码设置为:

{% for f in fs %}
{
            name: '{{f.fname}}',
            data: [{% for items in frequencydata %}
                    {% if {{forloop.parentloop.counter}}=={{forloop.counter}} %}
                       {% for item in items %}
                         {{ item}},
                       {% endfor %}
                    {% endif %}
                   {% endfor %}
]
        },
{% endfor %}

我得到"无法解析"

中的错误
{% if {{forloop.parentloop.counter}}=={{forloop.counter}} %}

这样做的正确方法是什么?

更多信息:

我有两个列表

fs ['a','b','c']

frequencydata [[[1990,5],[1991,6]]  ,   [[1990,15],[1991,16]]  ,   [[1990,25],[1991,26]]]

数据在基于位置的列表之间对应,我需要将它们一起显示。

由于

1 个答案:

答案 0 :(得分:0)

在模板标记内使用变量时,不要包括花括号:

{% if forloop.parentloop.counter == forloop.counter %}

如果fs是列表{{f.fname}},则包括['a', 'b', 'c']没有意义。这些字符串没有fname属性。

最后,包括{{ item}},意味着数组中的最后一项将包含一个无效的尾随逗号。

您可能会发现在python中创建对象更容易,使用json.dumps()将其转换为json,并将其传递给模板。