【问题标题】:django, group model by daysdjango,按天分组模型
【发布时间】:2013-01-05 06:23:18
【问题描述】:

我有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

这个功能很好用,但我想知道是否有更多的查询方式来做这样的分组事情。

【问题讨论】:

    标签: python django group-by itertools


    【解决方案1】:

    这个呢:

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

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

    【讨论】:

    • 谢谢!不知道group_by
    猜你喜欢
    • 2012-04-26
    • 2016-09-15
    • 2013-10-06
    • 2022-01-08
    • 1970-01-01
    • 2018-07-08
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    相关资源
    最近更新 更多