-1

私は Django / Python の世界にかなり慣れていません。

manager に次のクエリがあります。

listOfHeroes = self.all().values('user__user__username','skill','level')

次のようなテーブルを返します。

[{'user__user__username': u'Aragorn', 'skill': 'Fireball', 'level': 5}, {'user__user__username': u'Leonidas', 'skill': 'sword', 'level': 1},{'user__user__username': u'Aragorn', 'skill': 'sword', 'level': 4},....]

データをヒーロー別にグループ化したい。つまり、アラゴルンにはファイアボールとソードの 2 つのスキルがあります。

User: Aragorn / Skills: { sword level 4 / fireball level 5}

スキルがユーザーごとにグループ化されている最終データは、簡単に反復できる必要があります。

何かアイデアがあれば... 辞書を作成しようとしましたが、失敗しました..

4

1 に答える 1

0

データベース クエリを変更したくない場合は、次のようにします。

result = {}
for item in listOfHeroes:
    if item['user__user__username'] not in result:
        result[item['user__user__username']] = []
    result[item['user__user__username']].append({'skill': item['skill'], 'level': item['level']})

for key, value in result.items():
    print 'User: {0} / Skills: {{ {1} }}'.format(key, ' / '.join(['{0} level {1}'.format(skill['skill'], skill['level']) for skill in value]))
于 2012-09-01T19:27:57.400 に答える