2016-04-28 44 views
0

我有一個表bucket_items與列bucket_id和item_id我想通過bucket_id組item_id,使用 ItemBucket.objects.values('bucket_id', 'item_id')這將返回包含bucket_id和item_id的字典的列表,我想要的是一個帶有存儲區id的字典列表關鍵和ITEM_IDS作爲有價值的東西的名單像Django羣組項目按桶

[{1: [1,2,3]}, {3: [7,3,2]}] 

回答

2

使用values_list會更好這裏,而不是values,返回tuples而不是dicts。所以你可以做點像

final_dict = dict() 
for (bucket_id, item_id) in ItemBucket.objects.values_list('bucket_id', 'item_id'): 
    final_dict.setdefault(bucket_id, []).append(item_id) 
final_list = [{bucket_id: final_dict[bucket_id]} for bucket_id in final_dict]