2011-02-02 33 views
10

Tôi có mô hình Django với dấu thời gian created và tôi muốn nhận số lượng đối tượng được tạo mỗi ngày. Tôi đã hy vọng sử dụng chức năng tổng hợp trong Django nhưng tôi không thể tìm ra cách để giải quyết vấn đề của tôi với nó. Giả sử rằng không làm việc tôi luôn có thể rơi trở lại để chỉ nhận được tất cả các ngày với values_list nhưng tôi muốn cung cấp cho công việc để Django hoặc DB. Bạn sẽ làm điều này như thế nào?Nhận số lượng đối tượng hàng ngày từ Django

+1

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

Trả lời

23

Alex chỉ vào câu trả lời đúng trong các bình luận:

Count number of records by date in Django
tín dụng đi vào 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')) 

Tôi học các thủ thuật mới mỗi ngày đọc chồng .. tuyệt vời!

0

Sử dụng các phương pháp count:

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

nghe có vẻ hơi đắt tiền để đếm mỗi ngày mặc dù –

Các vấn đề liên quan