以下は、モデルのcreated_at
アトリビュートからの日付(時刻を取り除いた日付)であるvisit_date
と呼ばれるクエリーセットの新しいフィールドを作成します。 Count
機能を使用して、我々はユーザーと日付でグループクエリセットを、その後することができ、それぞれの日付の訪問数を数える:
from django.db.models import Count
week = timezone.now().date() - timedelta(days=7)
visits = Visit.objects.filter(created_at__gte=week)).extra({'visit_date' : 'date(created_at)'}).values('user', 'visit_date').annotate(visits_on_date=Count('pk'))
visits
クエリセットの意志はの線に沿って何かを探します:
[
{'user': 1, 'visit_date': datetime.date(2016, 11, 4), 'visits_on_date': 2},
{'user': 2, 'visit_date': datetime.date(2016, 11, 4), 'visits_on_date': 5},
{'user': 1, 'visit_date': datetime.date(2016, 11, 3), 'visits_on_date': 7},
{'user': 2, 'visit_date': datetime.date(2016, 11, 3), 'visits_on_date': 9},
{'user': 1, 'visit_date': datetime.date(2016, 11, 2), 'visits_on_date': 5}
]
クエリセット内の各アイテムは、特定のユーザーのその日付のユニークな訪問に関連しています。この例ではあなたはまた、visits_on_date
を見ることで、特定のユーザが行う訪問回数を決定するためにこれを使用することができます。5.
されるであろう
visits.count()
:あなたはでユニーク訪問の数を決定することができますクエリーセットのフィールド。
すごい!ありがとうございました。 – Goran