0

私は持っmodels.pyています:

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

日ごとにグループ化されたすべてのゲームを返す関数が必要です。結果は、'day' と 'games' (その日のゲームのリスト) のキーを持つ dict である必要があります。私は次のようにします:

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 に答える