繁体   English   中英

Django:按天数,无记录的天数为0

[英]Django: Count by day, with 0 for days with no records

我想获取14天以上的记录数

我目前正在做:

class Invitation(models.Model):
    ...
    start_date = models.DateTimeField(default=timezone.now)

all_invitations = Invitation.objects.all()

days14 = all_invitations.filter(start_date__range=[today - timedelta(days=7), today + timedelta(days=8)]).annotate(day=TruncDay('start_date')).values('day').annotate(count=Count('id')).values('day', 'count').order_by('day')

但是,这并没有给我提供0个邀请的日子。 我该如何实现?

但是,这并没有给我提供0个邀请的日子。

您已经在计算计数的day进行了分组

....values('day').annotate(count=Count('id'))

因此,这些天只会是表格中显示的那几天,因此不包括邀请数为0的日子。

我不确定这是否可以通过查询完全实现,因为表中没有所需的日期。 但是,您可以执行以下操作:

  • 得到一组14天范围内的所有天数(s1)
  • 获取另一组(s2)中该14天范围内表中的天数
  • 取s1和s2的设定差。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM