2011-02-02 19 views
10

Tengo un modelo Django con una marca de tiempo created y me gustaría obtener los recuentos de los objetos creados en cada día. Esperaba usar la funcionalidad de agregación en Django, pero no puedo resolver cómo resolver mi problema con ella. Asumiendo que eso no funciona, siempre puedo volver a obtener todas las fechas con values_list, pero preferiría dar el trabajo a Django o al DB. ¿Como lo harias?Obtenga recuentos diarios de objetos de Django

+1

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

Respuesta

23

Alex señaló la respuesta correcta en el comentario:

Count number of records by date in Django
crédito va a 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')) 

Aprendo nuevos trucos todos los días leyendo la pila ... ¡increíble!

0

Utilice el método count:

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

suena un poco caro para contar todos los días –

Cuestiones relacionadas