From f4db4fcea96f610bd5c041972b63440a26cc08f8 Mon Sep 17 00:00:00 2001 From: Matt Westcott Date: Tue, 14 Nov 2017 11:30:26 +0000 Subject: [PATCH] Backport fix for converting SearchRank weight list, from 781263d4e1d4d8c95170f19667b61700fd3751d9 --- wagtail/contrib/postgres_search/backend.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wagtail/contrib/postgres_search/backend.py b/wagtail/contrib/postgres_search/backend.py index e0cdc5255..8d3a72c80 100644 --- a/wagtail/contrib/postgres_search/backend.py +++ b/wagtail/contrib/postgres_search/backend.py @@ -266,9 +266,12 @@ class PostgresSearchQuery(BaseSearchQuery): sql, index_params + model_params + limits) def search_in_fields(self, queryset, search_query, start, stop): + # Due to a Django bug, arrays are not automatically converted here. + converted_weights = '{' + ','.join(map(str, WEIGHTS_VALUES)) + '}' + return (self.get_in_fields_queryset(queryset, search_query) .annotate(_rank_=SearchRank(F('_search_'), search_query, - weights=WEIGHTS_VALUES)) + weights=converted_weights)) .order_by('-_rank_'))[start:stop] def search(self, config, start, stop):