Removed ability to use prefetch_related in search queries

This will be replaced by search on queryset
pull/343/head
Karl Hobley 2014-06-20 11:09:45 +01:00
rodzic f73d66908e
commit 3d3d0eb2bd
2 zmienionych plików z 10 dodań i 10 usunięć

Wyświetl plik

@ -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

Wyświetl plik

@ -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))