मैं db से इन पंक्तियों को लाते समय हूँ में कई वस्तुओं के मूल्यों गठबंधन:एक एकल शब्दकोश
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'
....
और मैं के लिए प्रत्येक blog_id एक एकल शब्दकोश का निर्माण करना चाहते: उदा
[
{'blog': '12', 'title': 'title12 in en', 'desc': 'desc12 in en'},
{'blog': '13', 'title': 'title13 in en', 'desc': 'desc13 in en'},
....
]
मैं इस तरह से कोशिश कर रहा हूँ:
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_)
लेकिन इस सू गलत है, res
यहाँ blog 13
3 बार होता है और blog 12
भी अंतिम सूची में isnot। मुझे अभी इतना मूर्ख लगता है, मुझे क्या याद आ रही है?
आप के लिए एक ही वस्तु शब्दकोश जोड़ रहे हैं की तरह 'res', आप नई dict ऑब्जेक्ट ऑब्जेक्ट्स भी नहीं बना रहे हैं – thefourtheye
@thefourtheye मुझे पता है :(मुझे किसी भी तरह से गतिशील रूप से नए रास्ते को बनाने की ज़रूरत है ... – doniyor
क्यों' blog_id' को बाहरी कुंजी के रूप में उपयोग न करें और एक dict dicts? –