Фильтрация ArrayField только по целому и точному массиву?

У меня есть ArrayField на модели.

Как я могу отфильтровать или получить только весь точный массив?

В настоящее время я делаю примерно следующее:

search = f'["a", "b", "c"]'

list = search[2:-2].split("', '")
dict = {}
for n, item in enumerate(list):
  dict[f"slug__{n}"] = item

obj = queryset.filter(**dict)

Однако, это возвращает любой объект, где slug начинается с "a", "b" и "c". Например,

["a", "b", "c"]
["a", "b", "c", "d"]
["a", "b", "c", "d", "e"]
["a", "b", "c", "123"]

Как сделать фильтр или получить так, чтобы возвращалось только полное и точное совпадение slug? Т.е. obj возвращает только объекты со slug'ом ["a", "b", "c"]

Для фильтрации поля ArrayField по точному совпадению вы можете просто передать список, по которому будет производиться поиск, в filter

queryset = queryset.filter(slug=["a", "b", "c"])
Вернуться на верх