在我的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_date
和last_date
?如果可能的话,完整的答案将是值得赞赏的。
答案 0 :(得分:1)
找到您可以使用
first_date
和last_date
对象的.first()
和.last()
。
first_date = User.objects.first().date_joined
last_date = User.objects.last().date_joined
customers = CustomerProfile.objects.filter(user__date_joined__range=[first_date, last_date])
return customers.count()