Django:注释缺失的日期

Phi*_* S. 9 django django-orm

我想知道在特定时间段内我每天收到多少订单。

我的订单模型如下所示:

class Order(models.Model):

...
    bookingdate         = models.DateTimeField(default=timezone.now)
...
Run Code Online (Sandbox Code Playgroud)

我当前的 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')
Run Code Online (Sandbox Code Playgroud)

我目前的问题是我只列出每天至少发生一个订单的日期。但我还想列出 0 个订单的日期。

例如,我现在得到一个这样的“列表”:

12.12.2018 => 3
14.12.2018 => 1
17.12.2018 => 2
Run Code Online (Sandbox Code Playgroud)

但我也想要介于两者之间的日期。例子:

12.12.2018 => 3
13.12.2018 => 0
14.12.2018 => 1
15.12.2018 => 0
16.12.2018 => 0
17.12.2018 => 2
Run Code Online (Sandbox Code Playgroud)

知道我该怎么做吗?

Ami*_*udi -3

您的代码中有一个拼写错误

代替

query = Order.objects.filter(bookingdata__gte=startdate, bookingdate__lte=enddate)
Run Code Online (Sandbox Code Playgroud)

query = Order.objects.filter(bookingdate__gte=startdate, bookingdate__lte=enddate)
Run Code Online (Sandbox Code Playgroud)