sto recupero queste righe da db:combinare i valori di diversi oggetti in un unico dizionario
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'
....
e voglio costruire un unico dizionario per ogni blog_id: per esempio
[
{'blog': '12', 'title': 'title12 in en', 'desc': 'desc12 in en'},
{'blog': '13', 'title': 'title13 in en', 'desc': 'desc13 in en'},
....
]
sto provando in questo modo:
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_)
ma questo è mooolto male, res
contiene qui blog 13
3 volte e blog 12
IsNot anche nella lista finale. Mi sento così stupido adesso, cosa mi sto perdendo?
Si sta aggiungendo lo stesso oggetto dizionario per 'res', non stai nemmeno creando nuovi oggetti dict – thefourtheye
@thefourtheye So :(Ho bisogno di creare nuovi dettt dinamicamente in qualche modo sulla strada ... – doniyor
perché non usare il' blog_id' come una chiave esterna e creare un dettato di dicts? –