Я пытаюсь создать панель инструментов в django для игрового сайта.Мне нужно показать ежемесячный график «новых игроков, присоединившихся к игре».Я уже получаю общее количество игроков, и игроки присоединились в текущем месяце и за последние 7 дней, используя следующий код:
queryset = Players.object.all()
current_year = datetime.now().year
current_month = datetime.now().month
one_week_ago = datetime.today() - timedelta(days=7)
count['players_all'] = queryset.count
count['players_current_month'] = queryset.filter(joined__month=current_month, created_at__year=current_year).count
count['players_last_seven_days'] = queryset.filter(joined__gte=last_seven_days).count
Теперь я хочу добавить новый dict
, который покажет мне количество игроков, которые присоединилисьпоследние 12 месяцев, сгруппированные по месяцам.Что-то вроде:
count['players_last_twelve_months'] = get_players_last_twelve_months()
Затем я хочу определить эту функцию get_players_last_twelve_months()
так, чтобы она возвращала что-то вроде:
{
Jul:12
Aug:15
Sept:9
Oct:22
Nov:11
Dec:7
Jan:14
Feb:19
Mar:20
Apr:12
May:25
Jun:8
}
Я очень плохо знаком с python и django.Используя мои минимальные знания, я знаю, что могу использовать варианты queryset.filter
, которые я использовал выше, как.
queryset.filter(joined__month=11, current_year = 2017)
queryset.filter(joined__month=12, current_year = 2017)
queryset.filter(joined__month=1, current_year = 2018)
queryset.filter(joined__month=2, current_year = 2018)
Однако я не хочу жестко кодировать номера месяцев и т. Д. Кто-нибудь может дать мне несколько советов о том, как правильно добиться этого?