一天和一周的总用户数
Total user in a day and in a week
我想获取一天和一周内加入的用户总数,我试过如下
member_in_day = User.objects.exclude(is_staff=True)\
.annotate(day=TruncDay('date_joined')).values('date_joined') \
.annotate(total_members=Count('date_joined')) \
.order_by('-date_joined')
member_in_week = User.objects.exclude(is_staff=True)\
.annotate(week=TruncWeek('date_joined')).values('date_joined') \
.annotate(total_members=Count('date_joined')) \
.order_by('-date_joined')
模型是用户我得到的两个查询的输出是相同的,而不是一天它也给其他查询集。如何将今天的总数和本周的总数添加到模板
<QuerySet [{'date_joined': datetime.datetime(2020, 12, 28, 16, 47, 40, 509134, tzinfo=<UTC>), 'total_members': 1}, {'date_joined': datetime.datetime(2020, 12, 23, 11, 8, 19, 241355, tzinfo=<UTC>), 'total_members': 1}, {'date_joined': datetime.datetime(2020, 12, 23, 11, 6, 14, 20673, tzinfo=<UTC>), 'total_members': 1}, {'date_joined': datetime.datetime(2020, 12, 22, 9, 25, 45, 14632, tzinfo=<UTC>), 'total_members': 1}, {'date_joined': datetime.datetime(2020, 12, 22, 9, 24, 25, 819750, tzinfo=<UTC>), 'total_members': 1}, {'date_joined': datetime.datetime(2020, 12, 20, 12, 7, 37, 59113, tzinfo=<UTC>), 'total_members': 1}]> members
您不应该使用 date_joined
,而是在截断后使用 day
或 week
,因此:
member_in_day = User.objects.exclude(is_staff=True).values(
<b>day=</b>TruncDay('date_joined')
).annotate(
total_members=Count('date_joined')
)<b>.order_by('-day')</b>
与members_in_week
相同:
member_in_week = User.objects.exclude(is_staff=True).values(
<b>week=</b>TruncWeek('date_joined')
).annotate(
total_members=Count('date_joined')
)<b>.order_by('-week')</b>
我想获取一天和一周内加入的用户总数,我试过如下
member_in_day = User.objects.exclude(is_staff=True)\
.annotate(day=TruncDay('date_joined')).values('date_joined') \
.annotate(total_members=Count('date_joined')) \
.order_by('-date_joined')
member_in_week = User.objects.exclude(is_staff=True)\
.annotate(week=TruncWeek('date_joined')).values('date_joined') \
.annotate(total_members=Count('date_joined')) \
.order_by('-date_joined')
模型是用户我得到的两个查询的输出是相同的,而不是一天它也给其他查询集。如何将今天的总数和本周的总数添加到模板
<QuerySet [{'date_joined': datetime.datetime(2020, 12, 28, 16, 47, 40, 509134, tzinfo=<UTC>), 'total_members': 1}, {'date_joined': datetime.datetime(2020, 12, 23, 11, 8, 19, 241355, tzinfo=<UTC>), 'total_members': 1}, {'date_joined': datetime.datetime(2020, 12, 23, 11, 6, 14, 20673, tzinfo=<UTC>), 'total_members': 1}, {'date_joined': datetime.datetime(2020, 12, 22, 9, 25, 45, 14632, tzinfo=<UTC>), 'total_members': 1}, {'date_joined': datetime.datetime(2020, 12, 22, 9, 24, 25, 819750, tzinfo=<UTC>), 'total_members': 1}, {'date_joined': datetime.datetime(2020, 12, 20, 12, 7, 37, 59113, tzinfo=<UTC>), 'total_members': 1}]> members
您不应该使用 date_joined
,而是在截断后使用 day
或 week
,因此:
member_in_day = User.objects.exclude(is_staff=True).values(
<b>day=</b>TruncDay('date_joined')
).annotate(
total_members=Count('date_joined')
)<b>.order_by('-day')</b>
与members_in_week
相同:
member_in_week = User.objects.exclude(is_staff=True).values(
<b>week=</b>TruncWeek('date_joined')
).annotate(
total_members=Count('date_joined')
)<b>.order_by('-week')</b>