Skip to content

Commit f349b5e

Browse files
committed
Merge pull request django-haystack#761 from stefanw/simple-models-filter
Make models filter work on simple backend
2 parents 0e8bd20 + ff5064b commit f349b5e

File tree

3 files changed

+11
-1
lines changed

3 files changed

+11
-1
lines changed

AUTHORS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,3 +68,4 @@ Thanks to
6868
* Martin J. Laubach (mjl) for fixing the logic used when combining querysets
6969
* Eric Holscher (ericholscher) for a docs fix.
7070
* Erik Rose (erikrose) for a quick pyelasticsearch-compatibility patch
71+
* Stefan Wehrmeyer (stefanw) for a simple search filter fix

haystack/backends/simple_backend.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,16 @@ def search(self, query_string, **kwargs):
4545
hits = 0
4646
results = []
4747
result_class = SearchResult
48+
models = connections[self.connection_alias].get_unified_index().get_indexed_models()
4849

4950
if kwargs.get('result_class'):
5051
result_class = kwargs['result_class']
5152

53+
if kwargs.get('models'):
54+
models = kwargs['models']
55+
5256
if query_string:
53-
for model in connections[self.connection_alias].get_unified_index().get_indexed_models():
57+
for model in models:
5458
if query_string == '*':
5559
qs = model.objects.all()
5660
else:

tests/simple_tests/tests/simple_backend.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,11 @@ def test_search(self):
7171
# Ensure that swapping the ``result_class`` works.
7272
self.assertTrue(isinstance(self.backend.search(u'index document', result_class=MockSearchResult)['results'][0], MockSearchResult))
7373

74+
def test_filter_models(self):
75+
self.backend.update(self.index, self.sample_objs)
76+
self.assertEqual(self.backend.search(u'*', models=set([]))['hits'], 24)
77+
self.assertEqual(self.backend.search(u'*', models=set([MockModel]))['hits'], 23)
78+
7479
def test_more_like_this(self):
7580
self.backend.update(self.index, self.sample_objs)
7681
self.assertEqual(self.backend.search(u'*')['hits'], 24)

0 commit comments

Comments
 (0)