РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
107 of 818 menu

Лукап startswith

Лукап startswith применяется в методах фильтрации QuerySet, таких как filter и exclude. Он проверяет, начинается ли значение строкового поля с указанной подстроки. Поиск выполняется с учетом регистра, то есть "Article" и "article" считаются разными строками.

Синтаксис

Model.objects.filter(field__startswith='substring')

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

Рассмотрим модель статьи с полем заголовка:

from django.db import models class Article(models.Model): title = models.CharField(max_length=200) content = models.TextField() created_at = models.DateTimeField(auto_now_add=True) def __str__(self): return self.title

Допустим, в базе данных есть статьи с заголовками:

"Python для начинающих" "Python и Django" "Django ORM" "Flask vs Django"

Найдем все статьи, заголовки которых начинаются со слова "Python":

from myapp.models import Article articles = Article.objects.filter(title__startswith='Python') for article in articles: print(article.title)

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

"Python для начинающих" "Python и Django"

Пример . С полным путем

Найдем статьи, в которых содержание начинается с определенного текста:

from myapp.models import Article articles = Article.objects.filter(content__startswith='Введение') for article in articles: print(article.title)

Пример . С комбинированным поиском

Можно комбинировать startswith с другими условиями:

from myapp.models import Article from datetime import date articles = Article.objects.filter( title__startswith='Python', created_at__date__gte=date(2025, 1, 1) ) for article in articles: print(f"{article.title} - {article.created_at}")

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

"Python для начинающих - 2025-01-15 10:30:00" "Python и Django - 2025-02-20 14:20:00"

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

Исключим статьи, заголовки которых начинаются с "Python":

from myapp.models import Article articles = Article.objects.exclude(title__startswith='Python') for article in articles: print(article.title)

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

"Django ORM" "Flask vs Django"

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

  • лукап istartswith,
    который выполняет поиск без учета регистра
  • лукап endswith,
    который ищет строки, заканчивающиеся на подстроку
  • лукап icontains,
    который ищет строки, содержащие подстроку без учета регистра
  • лукап exact,
    который выполняет точное сравнение строк
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить