2016-04-28 41 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]