mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-07 22:04:48 +03:00
MongoDB NotSupportedError
I Propose this fix for MongoDB NotSupported error on distinct queries.
This commit is contained in:
parent
95a27a108d
commit
d53404b0b1
|
@ -12,6 +12,9 @@ from rest_framework.settings import api_settings
|
||||||
from functools import reduce
|
from functools import reduce
|
||||||
import operator
|
import operator
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
engine = settings.DATABASES['default']['ENGINE']
|
||||||
|
|
||||||
FilterSet = django_filters and django_filters.FilterSet or None
|
FilterSet = django_filters and django_filters.FilterSet or None
|
||||||
|
|
||||||
|
|
||||||
|
@ -104,7 +107,11 @@ class SearchFilter(BaseFilterBackend):
|
||||||
for search_term in self.get_search_terms(request):
|
for search_term in self.get_search_terms(request):
|
||||||
or_queries = [models.Q(**{orm_lookup: search_term})
|
or_queries = [models.Q(**{orm_lookup: search_term})
|
||||||
for orm_lookup in orm_lookups]
|
for orm_lookup in orm_lookups]
|
||||||
queryset = queryset.filter(reduce(operator.or_, or_queries)).distinct()
|
if engine == 'django_mongodb_engine':
|
||||||
|
queryset = queryset.filter(reduce(operator.or_, or_queries))
|
||||||
|
else:
|
||||||
|
queryset = queryset.filter(reduce(operator.or_, or_queries)).distinct()
|
||||||
|
|
||||||
|
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user