# HG changeset patch # User ymh # Date 1391084557 -3600 # Node ID 70e8d83f8530025e8c4e51c83d30d4eeb473c15f # Parent e9f30991c702c3c32ed52778b1eff68ae070ea09 Replace re.escape to avoid unneccessary escaping on unicode strings diff -r e9f30991c702 -r 70e8d83f8530 src/jocondelab/views/ajax.py --- a/src/jocondelab/views/ajax.py Wed Jan 29 14:11:00 2014 +0100 +++ b/src/jocondelab/views/ajax.py Thu Jan 30 13:22:37 2014 +0100 @@ -7,6 +7,7 @@ import json import logging +import re from django.conf import settings from django.db.models import Sum @@ -14,7 +15,6 @@ from django.http.response import HttpResponseBadRequest from django.views.generic import TemplateView import requests -import re from core.models import Notice, Thesaurus from jocondelab.models import (DbpediaYears, DbpediaGeo, DbpediaFields, @@ -30,7 +30,7 @@ count = request.GET.get('count', 20) qs = DbpediaFields.objects.filter(term__nb_illustrated_notice__gt=0,language_code=lang) if lang in [ "fr", "en", "de", "it", "es", "pt", "ca", "br", "eu", "oc" ]: - qs = qs.filter(label__iregex=r"\y%s"%re.escape(q)) + qs = qs.filter(label__iregex=r"\y%s"%re.sub("(\W)",lambda m: u'\\'+m.group(1),q, flags=re.UNICODE)) else: qs = qs.filter(label__icontains=q) qs = qs.values('dbpedia_uri','label').distinct().order_by('label')[:count]