refactor prepare filter methods in tags filter

stable
Héctor Fernández Cascallar 2019-01-18 13:57:13 +01:00 committed by Alex Hermida
parent b0d065167c
commit 7c5ba16d24
1 changed files with 6 additions and 6 deletions

View File

@ -506,11 +506,11 @@ class TagsFilter(FilterBackend):
return None return None
def prepare_filter(self, query, queryset): def prepare_filter(self, query):
return queryset.filter(tags__contains=query) return Q(tags__contains=query)
def prepare_exclude(self, query, queryset): def prepare_exclude(self, query):
return queryset.filter(~Q(tags__contains=query)) return ~Q(tags__contains=query)
def filter_queryset(self, request, queryset, view): def filter_queryset(self, request, queryset, view):
operations = { operations = {
@ -518,10 +518,10 @@ class TagsFilter(FilterBackend):
"exclude": self.prepare_exclude, "exclude": self.prepare_exclude,
} }
for mode, qs_method in operations.items(): for mode, prepare_method in operations.items():
query = self._get_tags_queryparams(request.QUERY_PARAMS, mode=mode) query = self._get_tags_queryparams(request.QUERY_PARAMS, mode=mode)
if query: if query:
queryset = qs_method(query, queryset) queryset = queryset.filter(prepare_method(query))
return super().filter_queryset(request, queryset, view) return super().filter_queryset(request, queryset, view)