2017-11-13 15 views
1

登録されたユーザーの数を1日ごとにグループ化しようとしていますが、これまでに失敗しました。特定の日に登録されたユーザーの数を取得します。

class Profile(models.Model): 
    createdon=models.DateField() 

次の生のSQLが正常に動作します:出力は今

SELECT COUNT(day(createdon)),day(createdon) from members_profile where month(createdon)=11 and year(createdon)=2017 GROUP BY day(createdon) 

:ORMで

1 10 
    5 8 

、私が来た最も近いのだった:

Profile.objects.extra({'d':"day(createdon)"}).values('d').annotate(count=Count('id')) 

    1 1 
    5 1 
    5 1 

しかし、それは驚くことではないld。私は代わりに 'd'でグループ化したいと思っています。列に不満を注ぐことは解決できません。

答えて

2

は魔法のように、次の

from django.db.models.functions import TruncDay 
from django.db.models import Count 
(Profile.objects.annotate(day=TruncDay('createdon')) 
       .values('day') 
       .annotate(count=Count('id')) 
       .order_by()) 
+0

作品を使用してみてください。最初の注釈の後にthoが欠落しています)。 –

+0

クールで固定されています。 – user6731765

関連する問題