0

我有models.py

class Game(models.Model):
    date = models.DateTimeField()

我想要一个函数来返回按天分组的所有游戏。结果应该是一个带有键的dict:'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

这个函数工作得很好,但我想知道是否有更多的查询方式来做这样的分组事情。

4

1 回答 1

2

那这个呢:

query = Game.objects.all().query
query.group_by = ['date']
results = QuerySet(query=query, model=Game)

然后您可以迭代结果,并从每个项目中获取日期和游戏。

于 2013-01-05T06:58:47.540 回答