querysets = []
for date in date_range:
querysets.append(MyModel.objects.filter(date_field__range=[date, date+timedelta(days=1)]).values('date_field').annotate(total=Sum('my_field')))
for queryset in querysets:
for result in queryset:
print(result['date_field'], result['total'])
评论 1
from django.db.models import Sum from datetime import datetime, timedelta
start_date = datetime(2023, 7, 15) end_date = datetime(2023, 7, 20) + timedelta(days=1)
date_range = [] current_date = start_date while current_date < end_date: date_range.append(current_date) current_date += timedelta(days=1)
querysets = [] for date in date_range: querysets.append(MyModel.objects.filter(date_field__range=[date, date+timedelta(days=1)]).values('date_field').annotate(total=Sum('my_field')))
for queryset in querysets: for result in queryset: print(result['date_field'], result['total'])
其中,MyModel是Django中的模型类,date_field是存储日期的字段名,my_field是需要统计总和的字段名。请根据实际情况进行修改。这段代码将开始和结束日期之间的每一天都统计出来,并输出每一天的总和。