Как получить объекты, содержащие определенную строку

Я хочу получить объекты, которые содержат определенную строку в их 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")

Чак здесь подробности

Вернуться на верх