for page in page_list: page.parsed_text = re.sub("\n\n", "\n", re.sub('<[^>]*>', '', wiki_to_html(page.text, FormatterEnv(), request.LANGUAGE_CODE, False, False, False))) re_filter = re.compile(re.sub(' ', '.*', query)) def search_comp_res(x, y): if re_filter.match(x.title.lower()) and re_filter.match(y.title.lower()): if re_filter.match(x.text.lower()) and re_filter.match(y.text.lower()): return 0 elif re_filter.match(x.text.lower()): return -1 elif re_filter.match(y.text.lower()): return 1 return 0 elif re_filter.match(x.title.lower()): return -1 elif re_filter.match(y.title.lower()): return 1 else: if re_filter.match(x.text.lower()) and re_filter.match(y.text.lower()): return 0 elif re_filter.match(x.text.lower()): return -1 elif re_filter.match(y.text.lower()): return 1 return 0 page_list = list(page_list) page_list.sort(search_comp_res)