Как получить объекты, содержащие определенную строку
Я хочу получить объекты, которые содержат определенную строку в их CharField.
На обычном Python без Django я могу сделать следующее для проверки:
if "something" in string:
pass
Однако я не знаю, как это сделать, используя .filter()
в Django:
posts = Post.objects.filter(field = "string") # how can I do something like 'in' here?
Я не хочу просто получать объекты, которые имеют точно такое же значение, как "string".
Пожалуйста, научите меня, как получить объекты, содержащие определенную строку в Django, используя .filter()
.
Вы можете использовать contains
. Это сделает чувствительный к регистру тест содержимого.
Post.objects.filter(field__contains='string')
В результате будет сформирован следующий SQL-запрос.
SELECT ... WHERE field LIKE '%string%'
Для получения дополнительной информации смотрите полевые поиски.
posts = Post.objects.filter(field__icontains = "string")
Чак здесь подробности