def sales_api(request):
startTime_month = timezone.now() - datetime.timedelta(days=30)
qs = (Sale.objects
.filter(timestamp__gt=startTime_month)
.annotate(day=TruncDay('timestamp'))
.values('day')
.annotate(c=Count('*'))
.annotate(r=Sum('price'))
)
db_sales = {i["day"].date(): (i["c"], money(i["r"])) for i in qs}
base = timezone.now().date()
date_list = [base - datetime.timedelta(days=x) for x in range(0, 30)]
sales_list = []
revenue_list = []
for date in date_list:
if date in db_sales:
sales, revenue = db_sales[date]
sales_list.append(sales)
revenue_list.append(revenue)
else:
sales_list.append(0)
revenue_list.append(0)
items = {
"day": date_list,
"sales": sales_list,
"revenue": revenue_list,
}
return JsonResponse(items)
评论列表
文章目录