首页 > 编程学习 > 17 Djaogo日期归档查询方式

17 Djaogo日期归档查询方式

发布时间:2022/8/18 12:05:12

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)]>
Copyright © 2010-2022 mfbz.cn 版权所有 |关于我们| 联系方式|豫ICP备15888888号