Лукап endswith

Лукап endswith применяется в фильтрации QuerySet и проверяет, оканчивается ли значение текстового поля на заданную подстроку. Поиск выполняется с учетом регистра, то есть регистр букв имеет значение. Лукап используется внутри методов filter, exclude и других, принимающих условия поиска.

Параметры: лукап принимает в качестве значения строку, на которую должно оканчиваться значение поля. Регистр символов при сравнении учитывается.

Синтаксис

pythonModel.objects.filter(field__endswith=value)

Пример . С моделью Article

Пусть у нас есть модель статьи с полем title. Найдем все статьи, заголовки которых оканчиваются на слово "Django":

pythonfrom myapp.models import Article

res = Article.objects.filter(title__endswith='Django')
for article in res:
  print(article.title)

Результат выполнения кода:

python"Mastering Django"
"Learn Django"
"Advanced Django"

Пример . С моделью User

Пусть у нас есть модель пользователя с полем email. Найдем всех пользователей, почта которых оканчивается на домен "gmail.com":

pythonfrom myapp.models import User

res = User.objects.filter(email__endswith='gmail.com')
for user in res:
  print(user.email)

Результат выполнения кода:

python"john.doe@gmail.com"
"alice.smith@gmail.com"
"bob.johnson@gmail.com"

Пример . С исключением

Используем лукап endswith вместе с методом exclude, чтобы исключить статьи, заголовки которых оканчиваются на слово "Guide":

pythonfrom myapp.models import Article

res = Article.objects.exclude(title__endswith='Guide')
for article in res:
  print(article.title)

Результат выполнения кода:

python"Mastering Django"
"Learn Django"
"Advanced Django"
"Python Basics"

Пример . С несколькими условиями

Комбинируем лукап endswith с другим условием для более точной фильтрации. Найдем опубликованные статьи, заголовки которых оканчиваются на "2025":

pythonfrom myapp.models import Article

res = Article.objects.filter(
  status='published',
  title__endswith='2025'
)
for article in res:
  print(article.title)

Результат выполнения кода:

python"Year in Review 2025"
"Tech Predictions 2025"

Смотрите также

  • лукап iendswith,
    который выполняет поиск без учета регистра
  • лукап startswith,
    который проверяет начало строки с учетом регистра
  • лукап istartswith,
    который проверяет начало строки без учета регистра
  • лукап contains,
    который выполняет поиск подстроки с учетом регистра