Django-Filter: Поиск в поле ArrayField с помощью массива?
У меня есть точка данных all_positions, которая использует arrayField. Таким образом, пример данных выглядит следующим образом:
all_positions: ["C", "1B"],
all_positions: ["RP", "CP"],
all_positions: ["CP"],
Я хотел бы иметь возможность сделать запрос, подобный /api/player-profiles/?all_positions=RP,CP и вернуть второй и третий примеры. По сути, я хочу вернуть всех игроков, которые имеют ЛЮБУЮ из позиций, переданных в URL, в своих all_positions данных.
Я читал о перекрытии, но не уверен, как мне интегрировать это в мои фильтры django-rest. Вот как выглядит фильтр в настоящее время:
class PlayerProfileFilter(django_filters.FilterSet):
all_positions = CharInFilter(field_name='all_positions', lookup_expr='contains')
Просто измените фильтр поиска в lookup_expr с contains на overlap:
class PlayerProfileFilter(django_filters.FilterSet):
all_positions = CharInFilter(field_name='all_positions', lookup_expr='overlap')