2016-11-22 2 views
1

Мой метод принимает строковый параметр, который является в основном именем столбца db.Объекты Django фильтруют по имени параметра

я могу сделать что-то вроде этого:

original_message = "Let it go" 
    language = "english" 
    ads = Ad.objects.filter(language=original_message) 

где язык не имя, а ссылка на строку? Это позволит сэкономить мне много, если либо еще строки

+0

Да, но я искал подобный вопрос раньше, и это не получилось. Поэтому я не смог бы ответить на вопрос не на ответ. Мой вопрос очень конкретный, и я считаю, что многие пользователи найдут его полезным – Dejell

+0

Возможно, лучший дубликат поможет? [Как динамически указать имя поля поиска в запросе Django?] (Http://stackoverflow.com/q/1227091/1324033) – Sayse

+0

yep. это то же самое – Dejell

ответ

4

Фильтра принимает список ключевых слов аргументов, так что вы можете просто использовать это в свою пользу - в сочетании с распаковкой

original_message = "Let it go" 
language = "english" 
ads = Ad.objects.filter(**{language:original_message}) 
+0

Вау дайте мне попробовать. Спасибо, чувак, что было быстро! – Dejell

+0

Не беспокойтесь ... Я бы предпочел, чтобы это было закрыто, как дубликат, поэтому, я удалю этот ответ, если он закрыт. – Sayse

+1

см. Мой комментарий выше – Dejell