我想知道在特定时期内每天收到多少订单。
我的订单模型如下:
class Order(models.Model):
...
bookingdate = models.DateTimeField(default=timezone.now)
...
我当前的Django“查询”如下所示:
query = Order.objects.filter(bookingdate__gte=startdate, bookingdate__lte=enddate)
query = query.annotate(created_date=TruncDate('bookingdate')).values('created_date').annotate(
sum=Count('created_date')).values('created_date', 'sum')
我目前的问题是,我只列出每天至少发生一次订单的日期。但我也想列出0个订单的日期。
例如,我现在得到一个像这样的“列表”:
12.12.2018 => 3
14.12.2018 => 1
17.12.2018 => 2
但是我也希望两者之间的日期。示例:
12.12.2018 => 3
13.12.2018 => 0
14.12.2018 => 1
15.12.2018 => 0
16.12.2018 => 0
17.12.2018 => 2
你知道我该怎么做吗?
答案 0 :(得分:-1)
您的代码中有错字
替换
query = Order.objects.filter(bookingdata__gte=startdate, bookingdate__lte=enddate)
使用
query = Order.objects.filter(bookingdate__gte=startdate, bookingdate__lte=enddate)