From 3f684ba3a72a500223ed26c9ff48372a801cdfe1 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 12 Oct 2017 18:27:53 +0200 Subject: Search forms: manage vector searches (refs #2912) --- ishtar_common/views.py | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'ishtar_common') diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 997acd7df..6652ba6a9 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -41,6 +41,7 @@ from extra_views import ModelFormSetView from django.conf import settings from django.contrib.auth import logout from django.contrib.auth.decorators import login_required +from django.contrib.postgres.search import SearchQuery from django.core.exceptions import ObjectDoesNotExist from django.core.urlresolvers import reverse, NoReverseMatch from django.db.models import Q, ImageField @@ -835,6 +836,9 @@ def get_item(model, func_name, default_name, extra_request_keys=[], reqs |= q and_reqs.append(reqs) break + if 'search_vector' in dct: + dct['search_vector'] = SearchQuery( + dct['search_vector'], config=settings.ISHTAR_SEARCH_LANGUAGE) query = Q(**dct) for k, or_req in or_reqs: alt_dct = dct.copy() @@ -908,6 +912,9 @@ def get_item(model, func_name, default_name, extra_request_keys=[], items = model.objects.filter(query).distinct() # print(items.query) + if 'search_vector' in dct: # for serialization + dct['search_vector'] = dct['search_vector'].value + # table cols if own_table_cols: table_cols = own_table_cols -- cgit v1.2.3