Skip to content

Commit 42fe33c

Browse files
committed
Fix filterset behavior on multiple negative conditions: simplify
1 parent 38ce0d1 commit 42fe33c

File tree

1 file changed

+2
-7
lines changed

1 file changed

+2
-7
lines changed

url_filter/backends/django.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
# -*- coding: utf-8 -*-
22
from __future__ import absolute_import, print_function, unicode_literals
33

4-
import operator
5-
from functools import reduce
6-
74
from django.db.models.constants import LOOKUP_SEP
8-
from django.db.models import Q
95

106
from .base import BaseFilterBackend
117

@@ -100,8 +96,7 @@ def filter_by_specs(self, queryset):
10096

10197
if include:
10298
queryset = queryset.filter(**include)
103-
if exclude:
104-
queryset = queryset.exclude(reduce(operator.or_,
105-
(Q(**{k: v}) for k, v in exclude.items())))
99+
for lookup, value in exclude.items():
100+
queryset = queryset.exclude(**{lookup: value})
106101

107102
return queryset.distinct()

0 commit comments

Comments
 (0)