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

Класс Extract

Класс Extract применяется в запросах Django для извлечения конкретного компонента даты или времени из поля модели. Он используется внутри методов annotate или aggregate и позволяет получить год, месяц, день, час, минуту, секунду или неделю из значения поля. В качестве аргументов класс принимает название извлекаемой части и выражение, содержащее поле даты или времени.

Синтаксис

from django.db.models import Extract Extract(expression, lookup_name)

Пример

Давайте извлечем год из даты создания статьи:

from myapp.models import Article from django.db.models import Extract res = Article.objects.annotate( year=Extract('created_at', 'year') ).values('title', 'year') for item in res: print(item)

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

{'title': 'article 1', 'year': 2025} {'title': 'article 2', 'year': 2026}

Пример

Давайте извлечем месяц из даты создания статьи:

from myapp.models import Article from django.db.models import Extract res = Article.objects.annotate( month=Extract('created_at', 'month') ).values('title', 'month') for item in res: print(item)

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

{'title': 'article 1', 'month': 1} {'title': 'article 2', 'month': 2}

Пример

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

from myapp.models import Article from django.db.models import Extract res = Article.objects.annotate( year=Extract('created_at', 'year') ).filter(year=2025).values('title', 'year') for item in res: print(item)

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

{'title': 'article 1', 'year': 2025}

Пример

Давайте извлечем час из времени создания статьи:

from myapp.models import Article from django.db.models import Extract res = Article.objects.annotate( hour=Extract('created_at', 'hour') ).values('title', 'hour') for item in res: print(item)

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

{'title': 'article 1', 'hour': 14} {'title': 'article 2', 'hour': 9}

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

  • класс Trunc,
    который округляет дату до указанной точности
  • метод dates,
    который возвращает список уникальных дат
  • метод datetimes,
    который возвращает список уникальных дат и времен
  • функция year,
    которая фильтрует записи по году
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить