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

Класс Trim

Класс Trim применяется в аннотациях и агрегациях для обрезки пробелов (или других указанных символов) в начале и конце строковых значений полей. Он является выражением базы данных и преобразуется в соответствующий SQL-запрос. Класс принимает один обязательный аргумент - выражение, которое должно быть обработано.

Синтаксис

from django.db.models import Trim Trim(expression)

В качестве аргумента expression может выступать название поля модели, объект класса F или другое выражение, возвращающее строковое значение.

Пример

Давайте добавим аннотацию к записям, которая обрезает пробелы в поле 'title':

from myapp.models import Article from django.db.models import Trim, Value from django.db.models.functions import Concat articles = Article.objects.annotate( trimmed_title=Trim('title') ) for article in articles: print(article.trimmed_title)

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

"First article" "Second article" "Third article"

Пример

Давайте используем класс Trim в связке с классом Concat для объединения полей с предварительной очисткой:

from myapp.models import Article from django.db.models import Trim, F, Value from django.db.models.functions import Concat articles = Article.objects.annotate( full_info=Concat( Trim('title'), Value(' - '), Trim('category'), output_field=CharField() ) ) for article in articles: print(article.full_info)

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

"First article - News" "Second article - Blog" "Third article - News"

Пример

Давайте используем класс Trim для фильтрации записей, у которых обрезанное название содержит определенный текст:

from myapp.models import Article from django.db.models import Trim, F from django.db.models.functions import Lower articles = Article.objects.annotate( trimmed_title=Trim(Lower('title')) ).filter( trimmed_title__contains='article' ) for article in articles: print(article.title)

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

"First article" "Second article" "Third article"

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

  • класс Concat,
    который объединяет строковые значения
  • класс Lower,
    который преобразует строку в нижний регистр
  • класс Upper,
    который преобразует строку в верхний регистр
  • класс Length,
    который возвращает длину строки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить