Получить ежедневный подсчет объектов от Джанго - PullRequest
10 голосов
/ 02 февраля 2011

У меня есть модель Django с отметкой времени created, и я хотел бы получить количество объектов, созданных за каждый день.Я надеялся использовать функцию агрегирования в Django, но я не могу понять, как решить мою проблему с ним.Предполагая, что это не работает, я всегда могу вернуться к получению всех дат с помощью values_list, но я бы предпочел передать эту работу Django или DB.Как бы вы это сделали?

Ответы [ 2 ]

25 голосов
/ 03 февраля 2011

Алекс указал на правильный ответ в комментарии:

Подсчет количества записей по дате в Django
Кредит идет на ara818

Guidoism.objects.extra({'created':"date(created)"}).values('created').annotate(created_count=Count('id'))

from django.db.models import Count

Guidoism.objects \
    # get specific dates (not hours for example) and store in "created" 
    .extra({'created':"date(created)"})
    # get a values list of only "created" defined earlier
    .values('created')
    # annotate each day by Count of Guidoism objects
    .annotate(created_count=Count('id'))

Я учусь новым трюкам каждый день, читая стопку .. потрясающе!

0 голосов
/ 02 февраля 2011

Используйте метод count :

YourModel.objects.filter(published_on=datetime.date(2011, 4, 1)).count()
...