2011-07-08 47 views
0

我有以下型号:Django的 - 查询集多维列表

class Fixture(models.Model): 
    id = models.AutoField(primary_key=True) 
    home_team = models.ForeignKey(Player, related_name="home") 
    away_team = models.ForeignKey(Player, related_name="away") 
    game_week = models.PositiveSmallIntegerField(max_length=2, default=0) 

我想要做的就是创建一个多维列表组由“game_week”属性我所有的固定对象。例如:

fixtures[0] = [<FixtureObject 1>, <FixtureObject 2>] 
    fixtures[1] = [<FixtureObject 3>, <FixtureObject 4>] 
    fixtures[2] = [<FixtureObject 5>] 
    fixtures[3] = [<FixtureObject 6>] 

其中fixture列表索引是不同的游戏周。什么是最简单,最pythonic的方式来做到这一点?

做到这一点是使用字典

回答

2

最简单的方法:

fixtures = Fixture.objects.all() 
fixture_dict = {} 
for fixture in fixtures: 
    fixture_dict.setdefault(fixture.game_week, []).append(fixture)