Django - 将二维字典数据呈现给模板

时间:2016-11-15 08:57:35

标签: python django dictionary chart.js

对于使用chartjs的投票项目。在图表中,将有多个与poll选项相同的行。例如 -

你是程序员吗?

  1. 没有

  2. 然后图表会为Noview投票记录生成2行。

    dictionary中,我创建了一个二维dictionary来存储投票选项。

    但我面临将二维chartjs数据呈现给模板的问题。在我为datasets: [{ label: '# of Votes', data: [12, 19, 3, 5, 2, 3], backgroundColor: [ 'rgba(255, 99, 132, 0.2)', ], borderColor: [ 'rgba(255,99,132,1)', ], borderWidth: 1 }] 编码的模板文件中。可以选择为以下代码设置数据 -

    dictionary

    上面的代码生成单行,但我需要让它成为多行的动态。

    这是我的二维{8: {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0}, 7: {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 1, 12: 0}} 数据集 -

    {% for key, value in vote_records.items %}
                {% list = [] %}
                {% for single_key, single_value in value.items %}
                {% list.append(single_value) %}
                {% endfor %}
                {
                        label: '# for Vote',
                        data: {{ list }},
                        backgroundColor: [
                        'rgba(255, 99, 132, 0.2)',
                        ],
                        borderColor: [
                        'rgba(255,99,132,1)',
                        ],
                        borderWidth: 1
                },
                {% endfor %}
    

    我正在尝试使用以下代码创建数据集 -

    {{1}}

    但这不是模板中的正确方法。我怎样才能做到这一点?感谢。

1 个答案:

答案 0 :(得分:1)

您无法在模板中执行列表操作。目前还不是很清楚你想做什么,但看起来你只需要将每个内部字典的值传递给你的JS函数。

{% for key, value in vote_records.items %}
        {
                label: '# for Vote',
                data: {{ value.values }},
                backgroundColor: [
                'rgba(255, 99, 132, 0.2)',
                ],
                borderColor: [
                'rgba(255,99,132,1)',
                ],
                borderWidth: 1
        },
{% endfor %}