Лукап istartswith
Лукап istartswith применяется к QuerySet и возвращает новый QuerySet, содержащий объекты, у которых значение поля начинается с определенной подстроки без учета регистра. Он используется в сочетании с методом filter, exclude или другими методами фильтрации. Лукап принимает один аргумент - строку поиска, которая сравнивается с началом значения поля.
Синтаксис
Model.objects.filter(field__istartswith='substring')
Пример
Рассмотрим модель 'Article' с полем 'title' и найдем статьи, название которых начинается с 'django' (регистр не важен):
from myapp.models import Article
# Поиск статей, название которых начинается с 'django'
articles = Article.objects.filter(title__istartswith='django')
for article in articles:
print(article.title)
Результат выполнения кода:
"Django for beginners"
"django and python"
"DJANGO advanced guide"
Как видите, найдены все статьи, независимо от того, написано название с заглавной буквы, строчными или заглавными буквами.
Пример
Используем лукап istartswith в связке с методом exclude, чтобы исключить записи, начинающиеся с определенной подстроки:
from myapp.models import User
# Исключаем пользователей, у которых имя начинается с 'admin'
users = User.objects.exclude(username__istartswith='admin')
for user in users:
print(user.username)
Результат выполнения кода:
"user1"
"manager"
"moderator"
Пример
Комбинируем лукап istartswith с другими условиями для более точной фильтрации:
from myapp.models import Product
from datetime import date
# Ищем товары, название которых начинается с 'smart', и цена больше 500
products = Product.objects.filter(
name__istartswith='smart',
price__gt=500
)
for product in products:
print(f"{product.name}: {product.price}")
Результат выполнения кода:
"Smartphone: 999"
"Smart TV: 1200"
"SMART watch: 600"
Смотрите также
-
лукап
startswith,
который выполняет регистрозависимый поиск по началу строки -
лукап
icontains,
который выполняет регистронезависимый поиск по подстроке -
лукап
endswith,
который выполняет регистрозависимый поиск по концу строки -
лукап
iendswith,
который выполняет регистронезависимый поиск по концу строки