# HG changeset patch # User cavaliet # Date 1383051308 -3600 # Node ID adafb3d13a192e3302b84d7c94be2272bca4506e # Parent 3cf9e6bd988fffeba4de5516a8bba8923cb6a880 optimisation diff -r 3cf9e6bd988f -r adafb3d13a19 src/jocondelab/views/front_office.py --- a/src/jocondelab/views/front_office.py Tue Oct 29 12:41:20 2013 +0100 +++ b/src/jocondelab/views/front_office.py Tue Oct 29 13:55:08 2013 +0100 @@ -31,12 +31,13 @@ } th = termsbythesaurus.setdefault(term["thesaurus"], { "translated": [], "untranslated": [] }) th["untranslated"].append(term) - for nt in Term.objects.filter(noticeterm__notice=notice, dbpedia_fields__language_code=lang).select_related('thesaurus__label,dbpedia_fields').order_by('dbpedia_fields__label').distinct(): + # We use "values" because it avoids an other db request for dbpedia_fields.get(language_code = lang).label + for nt in Term.objects.select_related('thesaurus__label,dbpedia_fields').filter(noticeterm__notice=notice, dbpedia_fields__language_code=lang).order_by('dbpedia_fields__label').distinct().values("thesaurus__label", "dbpedia_uri", "dbpedia_fields__label"): term = { - "thesaurus": nt.thesaurus.label, - "dbpedia_uri": nt.dbpedia_uri, + "thesaurus": nt["thesaurus__label"], + "dbpedia_uri": nt["dbpedia_uri"], "translated": True, - "label": nt.dbpedia_fields.get(language_code = lang).label + "label": nt["dbpedia_fields__label"] } th = termsbythesaurus.setdefault(term["thesaurus"], { "translated": [], "untranslated": [] }) th["translated"].append(term) @@ -128,7 +129,9 @@ notices = [] for n in ns: + logger.debug("COUCOU 0") termsbythesaurus = get_terms_by_thesaurus(n, lang) + logger.debug("COUCOU 1") noticedict = { "id": n.id, "title": n.titr, @@ -138,6 +141,7 @@ "terms_by_thesaurus": termsbythesaurus, "datation": termsbythesaurus.get("PERI",{}).get("translated",[]) + termsbythesaurus.get("EPOQ",{}).get("translated",[]) } + logger.debug("COUCOU 2") noticedict['image_title'] = noticedict['title'] if noticedict['title'] else noticedict['designation'] if show_years and n.years.exists(): noticedict["years"] = [n.years.all()[0].start_year, n.years.all()[0].end_year]