@cache_page((60 * 15))
def opensearch_suggestions(request):
 content_type = 'application/x-suggestions+json'
 search_form = SimpleSearchForm(request.GET, auto_id=False)
 if (not search_form.is_valid()):
  return HttpResponseBadRequest(content_type=content_type)
 cleaned = search_form.cleaned_data
 language = locale_or_default((cleaned['language'] or request.LANGUAGE_CODE))
 searcher = generate_simple_search(search_form, language, with_highlights=False)
 searcher = searcher.values_dict('document_title', 'question_title', 'url')
 results = searcher[:10]
 def urlize(r):
  return (u'%s://%s%s' % (('https' if request.is_secure() else 'http'), request.get_host(), r['url'][0]))
 def titleize(r):
  return r.get('document_title', r.get('question_title', [_('No title')]))[0]
 try:
  data = [cleaned['q'], [titleize(r) for r in results], [], [urlize(r) for r in results]]
 except ES_EXCEPTIONS:
  data = []
 return HttpResponse(json.dumps(data), content_type=content_type)

@ cache_page ( ( 60 * 15 ) ) def opensearch_suggestions ( request ) : content_type = 'application/x-suggestions+json' search_form = SimpleSearchForm ( request . GET , auto_id = False ) if ( not search_form . is_valid ( ) ) : return HttpResponseBadRequest ( content_type = content_type ) cleaned = search_form . cleaned_data language = locale_or_default ( ( cleaned [ 'language' ] or request . LANGUAGE_CODE ) ) searcher = generate_simple_search ( search_form , language , with_highlights = False ) searcher = searcher . values_dict ( 'document_title' , 'question_title' , 'url' ) results = searcher [ : 10 ] def urlize ( r ) : return ( u'%s://%s%s' % ( ( 'https' if request . is_secure ( ) else 'http' ) , request . get_host ( ) , r [ 'url' ] [ 0 ] ) ) def titleize ( r ) : return r . get ( 'document_title' , r . get ( 'question_title' , [ _ ( 'No title' ) ] ) ) [ 0 ] try : data = [ cleaned [ 'q' ] , [ titleize ( r ) for r in results ] , [ ] , [ urlize ( r ) for r in results ] ] except ES_EXCEPTIONS : data = [ ] return HttpResponse ( json . dumps ( data ) , content_type = content_type )
a simple search view that returns opensearch suggestions .