Фильтр запросов 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)
Как это сделать?
Рич
Ответы
Ответ 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 })