From 3d3d0eb2bdc20a394eb316bcfcc13ea7b61453b2 Mon Sep 17 00:00:00 2001 From: Karl Hobley Date: Fri, 20 Jun 2014 11:09:45 +0100 Subject: [PATCH] Removed ability to use prefetch_related in search queries This will be replaced by search on queryset --- wagtail/wagtailsearch/backends/db.py | 7 ++++--- wagtail/wagtailsearch/backends/elasticsearch.py | 13 ++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/wagtail/wagtailsearch/backends/db.py b/wagtail/wagtailsearch/backends/db.py index 419d8a99b..0531bc3aa 100644 --- a/wagtail/wagtailsearch/backends/db.py +++ b/wagtail/wagtailsearch/backends/db.py @@ -1,3 +1,5 @@ +import warnings + from django.db import models from wagtail.wagtailsearch.backends.base import BaseSearch @@ -64,8 +66,7 @@ class DBSearch(BaseSearch): # Distinct query = query.distinct() - # Prefetch related - for prefetch in prefetch_related: - query = query.prefetch_related(prefetch) + # Give deprecation warning if prefetch_related was used + warnings.warn("prefetch_related on search queries is no longer implemented. ", DeprecationWarning) return query \ No newline at end of file diff --git a/wagtail/wagtailsearch/backends/elasticsearch.py b/wagtail/wagtailsearch/backends/elasticsearch.py index 7b301442e..e9fa739f8 100644 --- a/wagtail/wagtailsearch/backends/elasticsearch.py +++ b/wagtail/wagtailsearch/backends/elasticsearch.py @@ -2,6 +2,7 @@ from __future__ import absolute_import import string import json +import warnings from django.db import models @@ -112,10 +113,9 @@ class ElasticSearchQuery(object): class ElasticSearchResults(object): - def __init__(self, backend, query, prefetch_related=[]): + def __init__(self, backend, query): self.backend = backend self.query = query - self.prefetch_related = prefetch_related def _do_search(self, offset=0, limit=None): # Params for elasticsearch query @@ -173,10 +173,6 @@ class ElasticSearchResults(object): # Get results results = self.query.model.objects.filter(pk__in=pk_list) - # Prefetch related - for prefetch in self.prefetch_related: - results = results.prefetch_related(prefetch) - # Put results into a dictionary (using primary key as the key) results_dict = dict((str(result.pk), result) for result in results) @@ -361,5 +357,8 @@ class ElasticSearch(BaseSearch): if not query_string: return [] + # Give deprecation warning if prefetch_related was used + warnings.warn("prefetch_related on search queries is no longer implemented. ", DeprecationWarning) + # Return search results - return ElasticSearchResults(self, ElasticSearchQuery(model, query_string, fields=fields, filters=filters), prefetch_related=prefetch_related) + return ElasticSearchResults(self, ElasticSearchQuery(model, query_string, fields=fields, filters=filters))