我有models.py
:
class Game(models.Model):
date = models.DateTimeField()
我希望有一个函数可以返回按天分组的所有游戏。结果应该是带有键的词典:'day'和'games'(当天的游戏列表)。我是这样做的:
from itertools import groupby
def get_games_grouped_by_days():
def get_day(obj):
return obj.date.day
games = Game.objects.all()
grouped_games = []
for day, games_in_day in groupby(games, key=get_day):
grouped_games.append({
'day': day,
'games': list(games_in_day)
})
return grouped_games
这个功能运行正常,但我想知道是否有更多的查询方式来做这样的组事。
答案 0 :(得分:2)
怎么样:
query = Game.objects.all().query
query.group_by = ['date']
results = QuerySet(query=query, model=Game)
然后你可以迭代结果,从每个项目中获取日期和游戏。