Класс Lower

Класс Lower в Django представляет собой выражение базы данных, которое преобразует строковое значение поля в нижний регистр. Он применяется внутри методов annotate и filter, позволяя выполнять операции с текстом, игнорируя регистр символов. Класс принимает одно обязательное выражение или имя поля, которое будет преобразовано. Результат работы Lower может использоваться для сортировки, фильтрации или вывода данных.

Синтаксис

pythonfrom django.db.models import Lower

Lower(expression)

Пример

Давайте преобразуем названия статей в нижний регистр и сохраним их в новом поле внутри QuerySet:

pythonfrom myapp.models import Article
from django.db.models import Lower

articles = Article.objects.annotate(
  lower_title=Lower('title')
).values('title', 'lower_title')
for item in articles:
  print(item)

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

python{'title': 'Hello World', 'lower_title': 'hello world'}
{'title': 'Django ORM', 'lower_title': 'django orm'}

Пример

Отфильтруем статьи, название которых в нижнем регистре содержит слово "django":

pythonfrom myapp.models import Article
from django.db.models import Lower

res = Article.objects.annotate(
  lower_title=Lower('title')
).filter(lower_title__icontains='django')
for article in res:
  print(article.title)

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

python"Best Django practices"
"Django for beginners"

Пример

Отсортируем статьи по названию в нижнем регистре без учета регистра:

pythonfrom myapp.models import Article
from django.db.models import Lower

res = Article.objects.order_by(
  Lower('title')
).values('title')
for item in res:
  print(item['title'])

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

python"Article about Python"
"Best Django tips"
"django and orm"
"Zebra project"

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

  • класс Upper,
    который преобразует строки в верхний регистр
  • класс Length,
    который возвращает длину строкового поля
  • класс Trim,
    который удаляет пробелы в начале и конце строки
  • метод filter,
    который выполняет фильтрацию QuerySet с использованием выражений