Django for / if in template

时间:2017-06-21 09:15:46

标签: javascript django dictionary

我有一个简单的问题,但此刻我愚蠢地解决它。

我有一个从视图传递到模板的不同列表,以便为googletable创建数据。它工作得很好,看起来如下:

        var input_class = 'bc';

        if(input_class == 'ab') {
            var rawData = [['ab'],
                        {%for ab in ab_list%}['{{ab}}'],
                        {% endfor %}];
        }
        else if(input_class == 'bc') {
            var rawData = [['bc'],
                        {%for bc in bc_list%}['{{bc}}'],
                        {% endfor %}];
        }
        else {
            var rawData = [['cd'],
                        {%for cd in cd_List%}['{{cd}}'],
                        {% endfor %}];
        }

出于显而易见的原因,我想把它放在以下内容中:

        {% for key, value in filter_lists.iteritems %}
            {% if input_class == '{{key}}' %}
                var rawData = [['{{key}}'],
                    {% for item in value %}['{{item}}'],
                    {% endfor %}
                ];
            {% endif %}
        {% endfor %}

可悲的是它不起作用。键都是'ab'之类的字符串,值与工作示例中的列表相同。

感谢你的帮助,雅各布。

编辑:

  • 我正在使用python 2.7,django 1.11

  • input_class由列表创建的下拉菜单更改。相同的列表定义了字典的键。

1 个答案:

答案 0 :(得分:0)

我自己找到了解决方案,但不知道为什么其他的反效果不起作用..问题似乎是if语句..

        {% for key, value in filter_lists.items %}
            if (input_class == '{{key}}'){
                var rawData = [
                    ['{{key}}'],
                    {% for item in value %}['{{item}}'],
                    {% endfor %}
                ];
            }
        {% endfor %}