首页 > 解决方案 > Django - 将 int 和 None 值传递给 chart.js

问题描述

我不太擅长 javascript,这是一种我总是难以理解和使用的语言。我正在开发一个 Django 项目,我需要将列表传递给 Chart.js 以根据特定模型显示图表。

我遇到的问题是尝试将列表从 Django 传递给 javascript,以便在数据可用或不可用时显示数据。

假设我有一个来自 Model 属性的 python 列表:

[10, 20, None, 30, 40, None, 50]

我需要 Chart.js 来显示数据,具体取决于它们是否是每个轴点的值,如果它们是 None,则什么都没有。当我尝试传递列表时json.dump(),然后在我的模板中{{ my_list|safe }}显示它,如下所示:

['10', '20', 'None', '30', '40', 'None', '50']

当它应该是 int 或 None/null 值时,所有内容都显示为 str。如果我需要 chart.js 在后端具有值,我该怎么办?

希望我的问题足够清楚,如果不让我知道,我会尽力解释!

预先感谢您的宝贵帮助。

Chart.js 代码

        var ctx = document.getElementById('financial-chart');
        var myChart = new Chart(ctx, {
            type: 'line',
            data: {
                labels: {{ tab_year|safe }}",
                datasets:
                [{
                    label: 'Sales',
                    data: {{ tab_sales|safe }},
                    backgroundColor: "#4C81B6",
                    borderColor: "#4C81B6",
                    borderWidth: 3,
                    tension: 0.3,
                    fill: false
                },


                {
                    label: 'Profit',
                    data: {{ tab_profit|safe }},
                    backgroundColor: "#DF5558",
                    borderColor: "#DF5558",
                    borderWidth: 3,
                    tension: 0.3,
                    fill: false

                }]
            },
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                }
            }
        });

解决了

正如 elyas 所提到的,额外的引号是导致问题的原因。Nones 现在被解释为 null,因为它们应该是。

标签: javascriptpythondjangochart.js

解决方案


推荐阅读