Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django和#x27的每日复合聚合;s``User``模型'``日期字段(用于用高图作图)_Django_Date_Graph_Aggregate_Highcharts - Fatal编程技术网

Django和#x27的每日复合聚合;s``User``模型'``日期字段(用于用高图作图)

Django和#x27的每日复合聚合;s``User``模型'``日期字段(用于用高图作图),django,date,graph,aggregate,highcharts,Django,Date,Graph,Aggregate,Highcharts,我想使用我的用户模型,并使用日期字段按天对其进行细分。Django似乎很适合,但我不确定如何将其用于DateField对象。我相信我也希望这些价值观能够复合 我的目标是从第一次注册到现在(并继续)最多的人开始,每天得到一个整数。我想我希望这是复合形式的,比如,如果第一天我有100个注册,第二天是80个,我希望第二天的总数是180个。通过这种方式,我可以看到用户基数随着时间的推移而增长/下降,而不仅仅是在没有注册的日子里看到注册峰值和平坦线 开始使用海图作图了。这里是我想要实现的图形的一个实例,仅

我想使用我的
用户
模型,并使用
日期
字段按天对其进行细分。Django似乎很适合,但我不确定如何将其用于DateField对象。我相信我也希望这些价值观能够复合

我的目标是从第一次注册到现在(并继续)最多的人开始,每天得到一个整数。我想我希望这是复合形式的,比如,如果第一天我有100个注册,第二天是80个,我希望第二天的总数是180个。通过这种方式,我可以看到用户基数随着时间的推移而增长/下降,而不仅仅是在没有注册的日子里看到注册峰值和平坦线

开始使用海图作图了。这里是我想要实现的图形的一个实例,仅使用苹果股票数据,但这或多或少是我想要的,仅使用每天的用户注册量

我可以使用以下示例构建单个实例的查询集。但这并不是一个非常现实的方法。我希望动态计算这些数字,而不是手动分配它们


y2007m09d01=(用户列表。筛选(加入日期\u年=“2007”)。筛选(加入日期\u月=“9”)。筛选(加入日期\u日=“1”)。计数())
y2007m09d02=(用户列表。过滤器(加入日期:2007年)。过滤器(加入日期:9)。过滤器(加入日期:1)。计数()+y2007m09d01)

可能有一些“all django”解决方案,但如果没有,您可以在用户列表上使用。我是这样想的:

from itertools import groupby
from operator import attrgetter

iter_groups = groupby(User.objects.all(), attrgetter('date_joined'))
groups = [list(g) for _, g in iter_groups]

另一种方法是首先找出有记录的最早日期时间。以datetime为起点,迭代每一天(直到今天),每次对它进行筛选都会给我一个很好的结果,但我不确定如何引用每个组加入的日期。我想可以引用其中一个包含用户的
date\u joined
字段,因为它们都是相同的(在一个组中)。让我进一步研究一下,在我的示例中,我假设您只需要组列表,但iter组中的列表(g)中的
,代表每个组的加入日期,你可以改变理解力,以更适合你的方式来包装结果。我很难理解最后一行。有没有更简洁的方式来表达这一点?我现在理解了
\uuu
的用法,但我不确定如何扩展它。更进一步,我想取最后一个结果,每次通过,加上目前为止的总数。。。e、 g.
[100,110,150,154,…]
[100,10,40,4,…]
相比,我建议您在django shell中使用它,直到您了解如何使用groupby的结果(我就是这么做的)。至于添加前面的元素,一旦你得到每个组的总数,你就可以单独添加了。经过一系列的尝试和错误之后,我现在有了
组=[dict({uu:len(list(g))})用于iter\u组中的{ug,g]
输出
{datetime.datetime(2011,11,16,9,54,31):1}…
现在我必须对总数进行复合。