I have a base model view set which i can handle order, pagination and search functionalities.
When i have proper filter backends, i can set ordering_fields, search_fields but my question is that:
like i can set ordering_fields = '__all__' isn't it possible to set search_fields for all?
I've looked for deep inside filtering mechanism and came here:
def filter_queryset(self, request, queryset, view):
search_fields = getattr(view, 'search_fields', None)
if not search_fields:
return queryset
orm_lookups = [self.construct_search(six.text_type(search_field))
for search_field in search_fields]
for search_term in self.get_search_terms(request):
or_queries = [models.Q(**{orm_lookup: search_term})
for orm_lookup in orm_lookups]
queryset = queryset.filter(reduce(operator.or_, or_queries))
return queryset
drf fails on generate search_fields if it is set search_fields='__all__'
Is there any other way to provide search by all functionality?