Каков наилучший способ написать несколько агрегатных представлений в Django? - PullRequest
0 голосов
/ 20 апреля 2019

У меня есть следующий фрагмент:

 sum_games       = GameHistory.objects.all().aggregate(Sum('games'))
 sum_played      = GameHistory.objects.all().aggregate(Sum('games_played'))
 sum_goals       = GameHistory.objects.all().aggregate(Sum('goals'))
 sum_assists     = GameHistory.objects.all().aggregate(Sum('assists'))
 sum_clean_sheet = GameHistory.objects.all().aggregate(Sum('clean_sheet'))

Какой самый лучший и чистый способ написать это? Потому что сейчас я просто повторяюсь, но с разными переменными.

Заранее спасибо.

1 Ответ

3 голосов
/ 20 апреля 2019

Вы можете разделить их запятыми.

stats = GameHistory.objects.all().aggregate(sum_games=Sum('games'), sum_games_played=Sum('games_played'), ...)

и затем получить доступ следующим образом:

print(stats['sum_games'])
print(stats['sum_games_played'])

https://docs.djangoproject.com/en/2.2/topics/db/aggregation/#joins-and-aggregates

...