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

Класс Upper

Класс Upper применяется в аннотациях и агрегациях QuerySet для преобразования строкового значения поля в верхний регистр. Этот класс наследуется от Func и генерирует SQL-выражение UPPER, которое выполняется на стороне базы данных. Класс принимает одно или несколько выражений в качестве аргументов и возвращает преобразованную строку в верхнем регистре.

Синтаксис

from django.db.models.functions import Upper Upper(expression, **extra)

Пример . С преобразованием поля

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

from django.db.models.functions import Upper from myapp.models import Article articles = Article.objects.annotate( title_upper=Upper('title') ).values('title', 'title_upper') for article in articles: print(article['title_upper'])

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

"ПЕРВАЯ СТАТЬЯ" "ВТОРАЯ СТАТЬЯ" "ТРЕТЬЯ СТАТЬЯ"

Пример . С преобразованием в условиях фильтрации

Преобразуем строку в верхний регистр и используем её в условии фильтрации:

from django.db.models.functions import Upper from myapp.models import Article articles = Article.objects.annotate( upper_title=Upper('title') ).filter(upper_title='НОВОСТИ') for article in articles: print(article.title)

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

"Новости"

Пример . С преобразованием нескольких полей

Преобразуем в верхний регистр сразу два поля - заголовок и описание:

from django.db.models.functions import Upper from myapp.models import Article articles = Article.objects.annotate( title_upper=Upper('title'), description_upper=Upper('description') ).values('title_upper', 'description_upper') for article in articles: print(f"{article['title_upper']}: {article['description_upper']}")

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

"ПЕРВАЯ СТАТЬЯ: ЭТО ОПИСАНИЕ ПЕРВОЙ СТАТЬИ" "ВТОРАЯ СТАТЬЯ: ОПИСАНИЕ ВТОРОЙ СТАТЬИ"

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

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