Лукап endswith
Лукап endswith применяется в фильтрации QuerySet
и проверяет, оканчивается ли значение текстового поля
на заданную подстроку. Поиск выполняется с учетом регистра,
то есть регистр букв имеет значение. Лукап используется
внутри методов filter, exclude и других,
принимающих условия поиска.
Параметры: лукап принимает в качестве значения строку, на которую должно оканчиваться значение поля. Регистр символов при сравнении учитывается.
Синтаксис
Model.objects.filter(field__endswith=value)
Пример . С моделью Article
Пусть у нас есть модель статьи с полем title. Найдем все статьи, заголовки которых оканчиваются на слово "Django":
from myapp.models import Article
res = Article.objects.filter(title__endswith='Django')
for article in res:
print(article.title)
Результат выполнения кода:
"Mastering Django"
"Learn Django"
"Advanced Django"
Пример . С моделью User
Пусть у нас есть модель пользователя с полем email. Найдем всех пользователей, почта которых оканчивается на домен "gmail.com":
from myapp.models import User
res = User.objects.filter(email__endswith='gmail.com')
for user in res:
print(user.email)
Результат выполнения кода:
"john.doe@gmail.com"
"alice.smith@gmail.com"
"bob.johnson@gmail.com"
Пример . С исключением
Используем лукап endswith вместе с методом
exclude, чтобы исключить статьи, заголовки
которых оканчиваются на слово "Guide":
from myapp.models import Article
res = Article.objects.exclude(title__endswith='Guide')
for article in res:
print(article.title)
Результат выполнения кода:
"Mastering Django"
"Learn Django"
"Advanced Django"
"Python Basics"
Пример . С несколькими условиями
Комбинируем лукап endswith с другим условием
для более точной фильтрации. Найдем опубликованные
статьи, заголовки которых оканчиваются на "2025":
from myapp.models import Article
res = Article.objects.filter(
status='published',
title__endswith='2025'
)
for article in res:
print(article.title)
Результат выполнения кода:
"Year in Review 2025"
"Tech Predictions 2025"
Смотрите также
-
лукап
iendswith,
который выполняет поиск без учета регистра -
лукап
startswith,
который проверяет начало строки с учетом регистра -
лукап
istartswith,
который проверяет начало строки без учета регистра -
лукап
contains,
который выполняет поиск подстроки с учетом регистра