我正在尝试使用chartist,以显示每天的事件数量,到目前为止,我已经尝试了以下内容:
models.py
class Event(models.Model):
name = models.TextField(max_length=500)
event_date = models.DateTimeField()
charts.py
def mychart():
events = Event.objects.annotate(start_day=Trunc('event_date', 'day', output_field=DateField())).values('event_day').annotate(myevent=Count('id'))
return json.dumps({
'labels':[p['start_day'] for p in events],
'series':[p['myevents'] for p in events]})
但我仍然得到单个对象,而不是按“日”分组! 如下图所示:
2018-04-02 1
2018-03-31 1
2018-04-02 1
2018-04-02 1
2018-03-31 1
2018-04-02 1
2018-04-02 1
我期待的是:
2018-04-02 5
注意:我正在使用PostgreSQL数据库
答案 0 :(得分:1)
我打赌你的Event
模型上有一个默认排序,cause your aggregation not to work as expected。在进行查询时尝试清除任何默认顺序:
Event.objects.annotate(
start_day=Trunc('event_date', 'day', output_field=DateField())
).values('event_day').annotate(myevent=Count('id')).order_by()
注意最后的order_by()
。