javascript - 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,因为它们应该是。
解决方案
推荐阅读
- python - Django如何将切换开关/复选框状态分配给变量并将其传递给views.py?
- rabbitmq - 如何在 Windows RabbitMQ 集群中加入 3 个节点
- python - Python 模块和全局变量
- html - 以 html 形式使用 perl 的 Sendemail 不起作用
- php - Laravel:它是如何注册配置服务的?
- angular - 在 Angular 中设计套接字连接应用程序的正确方法
- android - 您的 Android App Bundle 使用错误的密钥进行签名。确保您的 App Bundle 使用正确的签名密钥进行签名,然后重试:SHA1:
- azure-active-directory - Azure AD 企业应用程序 - 应用程序角色映射
- python - 更改 Jupyter Notebook (Python3) 的环境
- javascript - 如果我导航到页面,DOMContentLoaded 不起作用,仅在刷新时