ich diese Zeilen aus db bin holen:kombinieren Werte von mehreren Objekten in einem einzigen Wörterbuch
blog_id='12', field_name='title', translation='title12 in en', lang='en'
blog_id='12', field_name='desc', translation='desc12 in en', lang='en'
blog_id='13', field_name='title', translation='title13 in en', lang='en'
blog_id='13', field_name='desc', translation='desc13 in en', lang='en'
....
und ich möchte ein einziges Wörterbuch für jede blog_id bauen: z
[
{'blog': '12', 'title': 'title12 in en', 'desc': 'desc12 in en'},
{'blog': '13', 'title': 'title13 in en', 'desc': 'desc13 in en'},
....
]
Ich versuche, auf diese Weise:
res = []
dict_ = {}
for trans in translations: # 'translations' is QuerySet, already filtered by 'en'
if trans.blog_id in dict_.values():
dict_[trans.field_name] = trans.translation
else:
dict_['blog'] = trans.blog_id
dict_[trans.field_name] = trans.translation
res.append(dict_)
aber das ist soo falsch, res
enthält hier blog 13
3-mal und blog 12
isnot auch in der endgültigen Liste. Ich fühle mich jetzt so dumm, was vermisse ich?
Sie fügen das gleiche Wörterbuch Objekt 'res', Sie erstellen nicht einmal neue dict-Objekte – thefourtheye
@thefourtheye Ich weiß :(Ich muss auf dem Weg dynamisch neue dict erstellen ... – doniyor
warum nicht verwenden Sie die' blog_id' als äußere Taste und erstellen Sie ein Diktat von diktiert? –