Django提供了一种方式:日期归档查询方式
如果以后遇到,要用某年某月分组的话,那么可以使用Django提供的方式:
# from django.db.models.functions import TruncMonth, TruncDay, TruncHour
from django.db.models.functions import TruncMonth
models.Sales.objects\
.annotate(month=TruncMonth('timestamp')) # 截断日期到年月,在赋值给month。使用:Sales.month
.values("month") # 用截断出来的年月字段,来分组
.annotate(c=Count('id')) # 统计id的数量
.values('month', 'c') #
实例:
ret = models.Article.objects.filter(user=user_obj).annotate(month=TruncMonth("create_time")).values("month").annotate(c=Count('nid')).values_list("month", "c") # 年月分组
print(ret) # <QuerySet [(datetime.datetime(2022, 8, 1, 0, 0), 2)]>
标签:TruncMonth,Djaogo,17,models,month,annotate,values,归档
From: https://www.cnblogs.com/it-lkp/p/16598224.html