2011-02-02 11 views
10

Mam model Django z sygnaturą czasową created i chciałbym uzyskać liczbę obiektów utworzonych każdego dnia. Miałem nadzieję, że użyję funkcji agregacji w Django, ale nie mogę wymyślić, jak rozwiązać mój problem z tym. Zakładając, że to nie działa, zawsze mogę cofnąć się do otrzymania wszystkich dat z wartościami, ale wolałbym przekazać pracę Django lub DB. Jak byś to zrobił?Uzyskaj dzienną liczbę obiektów z Django

+1

http://stackoverflow.com/questions/2278076/count-number-of-records-by-date-in-django –

Odpowiedz

23

Alex wskazał właściwą odpowiedź w komentarzu:

Count number of records by date in Django
zasługa 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')) 

Uczę się nowych sztuczek każdego dnia, czytając stos .. niesamowite!

0

Użyj metody count:

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

brzmi trochę drogo, aby liczyć codziennie –

Powiązane problemy