2016-12-13 9 views
0

Я хочу, чтобы получить количество записей в течение 14 днейДжанго: Граф в день, с 0 в течение нескольких дней без каких-либо записей

Я в настоящее время делаю:

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

Однако, это не дает мне дней, для которых есть 0 приглашений.

Вы уже сгруппированы по day перед вычислением Граф

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

Таким образом, эти дни будут только те, которые присутствуют в таблице, и, следовательно, она не включает в дни с 0 приглашений.

Я не уверен, что это может быть полностью достигнуто с помощью запроса, потому что дни, которые вы хотите, отсутствуют в таблице. Вы, однако, можете сделать следующее:

  • получить все дни в течение 14 дней в диапазоне набора (s1)
  • получить дни, которые присутствуют в таблице в том, что 14 дней в диапазоне другого набора (s2)
  • принимают заданные разности s1 и s2.
+0

Итак, что мне здесь делать? –

+0

Проверьте обновленный ответ. – AKS

 Смежные вопросы

  • Нет связанных вопросов^_^