在我的django项目中,可以使用CustomerProfile.objects.all()
向应用程序中的每个客户显示并找到特定客户的创建日期
In [12]: cust = CustomerProfile.objects.get(pk=100)
In [13]: cust.user.date_joined
Out[13]: datetime.datetime(2017, 7, 28, 14, 43, 51, 925548)
In [14]: cust
Out[14]: <CustomerProfile: FistName LastName's customer profile>
根据创建日期,我想列出每天,每周,每月或每年创建的客户数量。结果的一个例子可能是
...
week 28 : [ 09/07/2017 - 15/07/2017 ] - Count : 201 customers
...
我可能需要一个范围start_date
和end_date
,我们会列出这类信息。 start_date
将是第一个客户创建的日期,start_week
创建的日期将是first_date的一周。显然,end_date是上次创建客户的日期,last_week
是此end_date
的一周。
例如,如果我在下拉菜单中选择Per week
并在表单中按Apply
,我想向我的模型发送信息,这样我可以编码我解释的内容。
到目前为止,我知道如何计算两个日期范围内的客户端数量:
CustomerProfile.objects.filter(user__date_joined__range=["2017-09-03", "2017-09-09"])
我如何在这里更新日期,以便我们可以在start_week
和end_week
之间获得一个列表? (完整的答案将不胜感激)如果可能的话,完整的答案将是值得赞赏的。我想我可以找到.first()
和.last()
对象的第一个和最后一个日期:
first_date = CustomerProfile.objects.first().user.date_joined
last_date = CustomerProfile.objects.last().user.date_joined
答案 0 :(得分:0)
你必须使用ORM吗?在SQL中可以解决这个问题:
SELECT
date_trunc('week', created) as "week_created",
count(customerprofile)
FROM customerprofile
GROUP BY 1
ORDER BY 1 ASC;
表单可以接受truncate参数,然后启动/停止范围以过滤结果。