Вам необходимо проверить наличие 2 перекрытий:
- Целевой массив перекрывает массив ['d', 'e']
- Целевой массив не массив перекрытий ['a', 'b', 'c', 'f' ... 'z']
Следующее выполняется в SQL, так как я не ' django вам придется адаптировать его. Вам не понадобится ни CTE, ни select_it в финале, но они полезны для тестирования.
-- setup test cases
with test_array_sets (test_array,select_it) as
( values (array['d','e'],'Yes')
, (array['d','e','f'],'No')
, (array[]::text[],'No')
, (array['x','y','z'],'No')
, (array['d'],'Yes')
, (array['e'],'Yes')
)
-- actual query needed,
select target_array, select_it
from test_array_sets
where not target_array && array['a','b','c','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
and target_array && array['d','e'] ;