Что эквивалентно этому оператору SQL в django?
SELECT * FROM table_name WHERE string LIKE pattern;
Как мне реализовать это в django? Я попытался
result = table.objects.filter( pattern in string )
Но это не сработало. Как мне это реализовать?
python
sql
django
django-models
django-queryset
Асвин Муругеш
источник
источник
result = table.objects.filter(string__icontains='pattern')
%a%b%
.result = table.objects.filter(string__contains='a').filter(string__contains='b')
ba
которыйLIKE %a%b%
не был бы.содержит и значки, упомянутые falsetru, создают такие запросы, как
SELECT ... WHERE headline LIKE '%pattern%
Наряду с ними вам могут понадобиться эти со схожим поведением: startwith , istartswith , endwith , iendswith
изготовление
SELECT ... WHERE headline LIKE 'pattern%
или
SELECT ... WHERE headline LIKE '%pattern
источник
Поиск строки в поле без учета регистра.
источник
Чтобы сохранить порядок слов, как в инструкции sql LIKE '% pattern%', я использую iregex, например:
Строковые методы неизменны, поэтому ваша переменная шаблона не изменится, и с. * вы будете искать 0 или более вхождений любого символа, кроме разрывных строк.
Используя следующее для перебора слов шаблона:
порядок слов в вашем шаблоне не будет сохранен для некоторых людей, которые могут работать, но в случае попытки имитировать SQL-подобный оператор я буду использовать первый вариант.
источник
Это можно сделать с помощью пользовательских поисков Django . Я сделал поиск в приложении, похожем на Django . После установки его на
__like
поиск с%
и_
маски будут включены.Весь необходимый код в приложении:
источник