2012-02-29 7 views
0

日々のユーザー登録数のリストを作成したいと思います。以下は私がこれをやっている方法ですが、最も論理的な方法ですか?日の範囲についてはDjangoでの毎日の新規ユーザー数のリストの作成

daily_users = User.objects.filter(date_joined__day=datetime.today().day).count() 

:一日のために

users = User.objects.all() 
oldest_user_date = users.order_by('date_joined')[0].date_joined 
day_difference = (datetime.now() - oldest_user_date).days 

historical_user_signups_per_day = [] 
while day_difference > 0: 
    days_user_signups = users.filter(date_joined__gt=datetime.now()-timedelta(days=day_difference+1), date_joined__lt=datetime.now()-timedelta(days=day_difference)).count() 
    daily_count = { 
     'count': days_user_signups, 
     'date': datetime.now()-timedelta(days=day_difference) 
    } 
    historical_user_signups_per_day.append(daily_count) 
    day_difference -= 1 

答えて

1

users = User.objects.all() 
count_by_day = [{'count':users.filter(date_joined__day=x.day).count(), \ 
       'date':x} \ 
        for x in User.objects.dates('date_joined','days')] 
+0

を、しかし、それを作る方法を知っていますか?0人のユーザーがいる場所の日付も含みますか? – Brenden

+0

実際には、DAY(24)とちょうど一致するので、これは正しくありません。何ヶ月もの間は動作しません。 – Brenden

+0

'date_joined'フィールドの日のリストを調べ、 datetime'オブジェクトで、日付のさまざまな部分がすべて含まれています。より正確にするために、ルックアップを調整することができます。それで '__day = x.day、__ month = x.month'などです。 –

0

当日の新しいユーザー数を見つけるために:これは素晴らしいです

def get_curr_day_new_user_count(): 
    from datetime import date 
    from django.contrib.auth.models import User 

    today = date.today() 
    return User.objects.filter(date_joined__contains=today).count() 
関連する問題