Фильтрация запросов по двум разным полям в пользовательском фильтре DRF - PullRequest
0 голосов
/ 18 марта 2020

Хотелось бы узнать, есть ли у вас какое-либо решение для фильтрации с одним запросом в формате «свободный текст» по двум или более полям другой модели

class WitnessFilter(BaseFilterBackend):
    def filter_queryset(self, request, queryset, view):
        new_queryset = queryset
        if view.action == 'list':
            serializer = WitnessFilterSerializer(data=request.query_params)
            serializer.is_valid(raise_exception=True)
            data = serializer.validated_data
            language = data.get('language')
            city = data.get('city')
            free_text = data.get('free_text') # <<<<<<<<<<<<

            if free_text:
                new_queryset = new_queryset.filter(Q(first_name__icontains=free_text) |
                                                   Q(last_name__icontains=free_text))

когда кто-то передает «somefirstname somelastname» не найду ничего. он работает только по имени или фамилии.

Спасибо!

...