首页 > 解决方案 > 在 Django 中编写多个聚合视图的最佳方法是什么?

问题描述

我有以下片段:

 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'))

写这个的最好和最干净的方法是什么?因为现在我只是在重复自己,但有不同的变量。

提前致谢。

标签: djangodjango-modelsdjango-views

解决方案


您可以用逗号分隔它们。

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


推荐阅读