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')
Вернуться на верх