2016-04-28 12 views
0

ich eine Tabelle bucket_items haben mit Spalten bucket_id und ITEM_ID ich möchte Gruppe item_ids von bucket_id, mit ItemBucket.objects.values('bucket_id', 'item_id') diese zurück Liste der Wörterbuch enthält bucket_id und ITEM_ID, was ich will, ist eine Liste der Wörterbuch mit Eimer ID als Schlüssel und die Liste der item_ids als Wert etwas wieDjango Gruppe Artikel von Eimer

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

Antwort

2

values_list Verwendung wird hier statt values, besser sein, die tuples statt dicts zurückgibt. So können Sie etwas wie

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] 
tun