From 0906bf2c08e67eb43789ef976a784a4da01a08bc Mon Sep 17 00:00:00 2001 From: tony Date: Fri, 15 May 2015 16:44:12 +0300 Subject: [PATCH] fix empty and_query --- rest_framework/filters.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/rest_framework/filters.py b/rest_framework/filters.py index 1ef4c7fa0..39de22fa2 100644 --- a/rest_framework/filters.py +++ b/rest_framework/filters.py @@ -107,11 +107,13 @@ class SearchFilter(BaseFilterBackend): for orm_lookup in orm_lookups] and_queries.append(reduce(operator.or_, or_queries)) - if settings.DATABASES[queryset.db]["ENGINE"] == "django.db.backends.oracle": - pk_list = queryset.filter(reduce(operator.and_, and_queries)).values_list('pk', flat=True) - return queryset.filter(pk__in=frozenset(pk_list)) - else: - return queryset.filter(reduce(operator.and_, and_queries)).distinct() + if and_queries: + if settings.DATABASES[queryset.db]["ENGINE"] == "django.db.backends.oracle": + pk_list = queryset.filter(reduce(operator.and_, and_queries)).values_list('pk', flat=True) + return queryset.filter(pk__in=frozenset(pk_list)) + else: + return queryset.filter(reduce(operator.and_, and_queries)).distinct() + return queryset class OrderingFilter(BaseFilterBackend):