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



我有模板代码设置为:

{% 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 %}

我在

中得到"Could not parse"错误
{% if {{forloop.parentloop.counter}}=={{forloop.counter}} %}

正确的方法是什么?

更多信息:

我有两个列表

fs ['a','b','c']
frequencydata [[[1990,5],[1991,6]]  ,   [[1990,15],[1991,16]]  ,   [[1990,25],[1991,26]]]

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

谢谢

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

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

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

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

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

最新更新