小时:
from django.db.models.functions import TruncDay, TruncHour, TruncMonth
hours = User.objects.filter(is_staff=False, date_joined__range=(t_day, now_time)).annotate(
hour=TruncHour('date_joined')).values('hour').annotate(count=Count('id'))
天数:
# 返回月新增用户量
t_month = Public_func().month_first_day(now_time) # 返回当月第一天的零点零分
day = User.objects.filter(is_staff=False, date_joined__range=(t_month, now_time)).annotate(
day=TruncDay('date_joined')).values('day').annotate(count=Count('id'))
季度:
# 返回季度新增用户量
time_list = Public_func().return_season_time(now_time) # 返回当年每个季度的第一天
first_season_count = User.objects.filter(is_staff=False,date_joined__range=(time_list[0], now_time)).filter(
date_joined__month__in=[1, 2, 3]).count()
two_season_count = User.objects.filter(is_staff=False, date_joined__range=(time_list[1], now_time)).filter(
date_joined__month__in=[4, 5, 6]).count()
three_season_count = User.objects.filter(is_staff=False,date_joined__range=(time_list[2], now_time)).filter(
date_joined__month__in=[7, 8, 9]).count()
four_season_count = User.objects.filter(is_staff=False, date_joined__range=(time_list[3], now_time)).filter(
date_joined__month__in=[10, 11, 12]).count()
年份:
month = User.objects.filter(is_staff=False, date_joined__range=(t_year, now_time)).annotate(
month=TruncMonth('date_joined')).values('month').annotate(count=Count('id'))
返回结果:
"increased_user_list": [
{
"month": "2020-01-01 00:00:00",
"count": 0
},
{
"month": "2020-02-01 00:00:00",
"count": 0
},
{
"month": "2020-03-01 00:00:00",
"count": 0
},
{
"month": "2020-04-01 00:00:00",
"count": 7
},
{
"month": "2020-05-01 00:00:00",
"count": 24
},
{
"month": "2020-06-01 00:00:00",
"count": 11
},
{
"month": "2020-07-01 00:00:00",
"count": 5
},
{
"month": "2020-08-01 00:00:00",
"count": 0
}