Поиск с 2 полями в общем представлении api
Знаете ли вы, как я могу искать по 2 полям с условиями 'и'?
То есть в приведенном ниже коде мне нужно искать в поле 'search_fields' название символа и таймфрейм, (оба условия вместе, а не только одно из них)
class RegisterSymbolViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
serializer_class = SymbolValidationSerializer
filter_backends = [filters.SearchFilter]
search_fields = ['^symbol','^time_frame']
queryset = RegisterSymbol.objects.all()
Во-первых, в документации DRF говорится, что только текстовые поля могут быть использованы в качестве поля поиска, поэтому если таймфрейм является DateField, он, скорее всего, не будет работать.
The SearchFilter class will only be applied if the view has a
search_fields attribute set. The search_fields attribute should
be a list of names of text type fields on the model,
such as CharField or TextField.
Вы можете попробовать создать собственный класс SearchFilter и переопределить метод filter_queryset, чтобы использовать and вместо оператора or.
См. исходный код DRF https://github.com/encode/django-rest-framework/blob/86673a337a4fe8861c090b4532379b97e3921fef/rest_framework/filters.py#L123