diff options
| author | Tom Christie | 2013-05-10 22:33:11 +0100 |
|---|---|---|
| committer | Tom Christie | 2013-05-10 22:33:11 +0100 |
| commit | 293dc3e6d8071fb464a63593831309468e457d6b (patch) | |
| tree | 7248a8281d52091a86dc62fce21150b4f4e616df /rest_framework | |
| parent | 8ce36d2bf1a899683208dc7de425a238ab27d0b3 (diff) | |
| download | django-rest-framework-293dc3e6d8071fb464a63593831309468e457d6b.tar.bz2 | |
Added SearchFilter
Diffstat (limited to 'rest_framework')
| -rw-r--r-- | rest_framework/filters.py | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/rest_framework/filters.py b/rest_framework/filters.py index 54cbbde3..3edef30d 100644 --- a/rest_framework/filters.py +++ b/rest_framework/filters.py @@ -74,7 +74,8 @@ class DjangoFilterBackend(BaseFilterBackend): class SearchFilter(BaseFilterBackend): - search_param = 'search' + search_param = 'search' # The URL query parameter used for the search. + delimiter = None # For example, set to ',' for comma delimited searchs. def construct_search(self, field_name): if field_name.startswith('^'): @@ -96,8 +97,8 @@ class SearchFilter(BaseFilterBackend): orm_lookups = [self.construct_search(str(search_field)) for search_field in search_fields] - for bit in search_terms.split(): - or_queries = [models.Q(**{orm_lookup: bit}) + for search_term in search_terms.split(self.delimiter): + or_queries = [models.Q(**{orm_lookup: search_term}) for orm_lookup in orm_lookups] queryset = queryset.filter(reduce(operator.or_, or_queries)) |
