Django: группировка по дате в поле даты и времени - PullRequest
0 голосов
/ 04 января 2019

Например, у меня есть такая модель:

class Transaction(models.Model):
    amount = models.FloatField()
    seller = models.ForeignKey(User, related_name='sells', on_delete=models.CASCADE)
    buyer = models.ForeignKey(User, related_name='purchased', on_delete=models.CASCADE)
    created_at = models.DateTimeField(auto_now_add=True)

Я хочу сгруппировать все транзакции, разделенные по каждой дате, и найти некоторые из них. Если created_at имеет тип DateField, я мог бы просто найти счет за каждый день по этому запросу:

Transaction.objects..values('created_at').annotate(count=Count('created_at_date')

Но это не работает DateTimeFeilds.

У меня вопрос: как мне найти общее количество транзакций для каждой даты для этого типа модели.

1 Ответ

0 голосов
/ 04 января 2019

Следующее будет работать для django 2.1 и выше.

 Transaction.objects.values('created_at__date').annotate(count=Count('id')).values('created_at__date', 'count').order_by('created_at__date')

Вам нужно использовать __date после имени для поиска и поставить order_by в конце.

Не уверен насчет предыдущих версий django.

...