python – Django Group By Weekday?
作者:互联网
我正在使用Django 1.5.1,Python 3.3.x,并且不能使用原始查询.
对于使用日期__range过滤器的QuerySet,有没有办法获得按工作日分组的QuerySet?我试图按工作日对结果进行分组,查询范围介于任意两个日期之间(可能相差多达一年).我知道如何使用get rows that match a weekday,但这需要对数据库进行7次查询,以便找出每个工作日的数据.
通过使用__week_day过滤器尝试不同的调整,我一直想通过几个小时来解决这个问题,但没有任何工作.即使谷歌搜索没有帮助,这让我想知道这是否可能.任何Django大师都在这里知道如果有可能吗?
解决方法:
由于不推荐使用额外功能,因此这是使用ExtractDayOfWeek在一周中进行分组的新方法.
from django.db.models.functions import ExtractWeekDay
YourObjects.objects
.annotate(weekday=ExtractWeekDay('timestamp'))
.values('weekday')
.annotate(count=Count('id'))
.values('weekday', 'count')
这将返回如下结果:
[{'weekday': 1, 'count': 534}, {'weekday': 2, 'count': 574},.......}
值得注意的是,1 =周日和周六= 7
标签:python,python-3-x,django,django-1-5 来源: https://codeday.me/bug/20190620/1243440.html