And*_*ara 17
假设以下模型可能与您的描述相符
class Activity(models.Model):
timestamp = models.DateTimeField(auto_now_add=True, blank=True)
distance = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)
您可以使用以下查询获得每周的统计数据
from django.db.models.functions import ExtractWeek, ExtractYear
from django.db.models import Sum, Count
stats = (Activity.objects
.annotate(year=ExtractYear('timestamp'))
.annotate(week=ExtractWeek('timestamp'))
.values('year', 'week')
.annotate(avg_distance=Avg('distance'))
)
Run Code Online (Sandbox Code Playgroud)
样本输出
<QuerySet [{'year': 2018, 'week': 31, 'distance': 3.2}]>
Run Code Online (Sandbox Code Playgroud)
要恢复一周的第一天,请检查从周数获取日期
特别是:
for record in stats:
week = "{year}-W{week}-1".format(year=record['year'], week=record['week'])
timestamp = datetime.datetime.strptime(week, "%Y-W%W-%w")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4858 次 |
最近记录: |