Подтвердить что ты не робот

Фильтр запросов Django с переменным столбцом

Я пытаюсь отфильтровать запрос с помощью

info=members.filter(name__contains=search_string)

Проблема у меня есть, я не знаю, в каком поле пользователь хочет искать раньше времени, поэтому мне нужно подставить "имя" переменной, как в

variable_column = 'name'
search_type = 'contains'
filter = variable_column + '__' + search_type
info=members.filter(filter=search_string)

Как это сделать?

Рич

4b9b3361

Ответ 1

Почти там..

members.filter(**{'string__contains': 'search_string'})

Чтобы понять, что он делает, google вокруг:) Понимание kwargs в Python

** расширяет словарные слова/пары значений до пар слов-аргументов ключевого слова.

Чтобы адаптировать ваш пример к решению:

variable_column = 'name'
search_type = 'contains'
filter = variable_column + '__' + search_type
info=members.filter(**{ filter: search_string })