【发布时间】:2019-04-20 00:46:40
【问题描述】:
我正在尝试创建一个基于 PO 的日期和计数动态更新的图表。
型号:
class JobOrder(models.Model):
status = models.CharField('status', choices=STATUS, max_length=200, default="Waiting")
job_order = models.IntegerField(primary_key=True)
remarks = models.CharField(max_length=45, blank=True, null=True)
rush_order = models.IntegerField()
date_issued = models.DateField('date_issued', auto_now_add=True)
date_required = models.DateField()
client = models.ForeignKey(Client, on_delete= models.CASCADE)
total_amount = models.FloatField()
视图查询:
POs = JobOrder.objects.values('date_issued__year', 'date_issued__month').annotate(c=Count('id')).values('c')
在 HTML 中的 javascript 代码中传递它:
function salesComparisonChart() {
var POComparisson = google.visualization.arrayToDataTable([
['Month', 'Count'],
{% for POs in POs %}
['Month', parseInt('{{POs}}')],
{% endfor %}
]);
使用我当前的代码,正在传递的数据如下所示:
{'c': 4}
{'c': 2}
{'c': 1}
【问题讨论】:
-
{% for POs in POs %}是错字吗? -
不,它是一个 for 循环,每次有对象 PO 时都会打印
['Month', parseInt('{{POs}}')] -
那么目前发生了什么?您看到错误了吗?
-
这些正在被传递:{'c': 4} {'c': 2} {'c': 1} 我想要的是大括号中的数字,因为 javascript 不读取它们作为int
标签: django django-queryset django-aggregation django-annotate