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

Метод dates

Метод dates применяется к QuerySet и возвращает новый QuerySet, содержащий объекты типа datetime.date, представляющие уникальные даты из указанного поля. Это полезно для создания календарей, архивов или группировки записей по датам. Метод принимает имя поля, параметр точности (год, месяц или день) и необязательный порядок сортировки.

Синтаксис

Model.objects.dates(field_name, kind, order='ASC')

Параметр field_name указывает имя поля модели (должно быть типа DateField или DateTimeField). Параметр kind определяет точность выборки и может принимать значения: 'year', 'month' или 'day'. Параметр order задает порядок сортировки: 'ASC' (по умолчанию) или 'DESC'.

Пример

Давайте получим все уникальные годы из поля 'created_at' модели Article:

from myapp.models import Article years = Article.objects.dates('created_at', 'year') for year in years: print(year)

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

"2025-01-01" "2026-01-01"

Пример

Получим уникальные месяцы из поля 'created_at' с сортировкой по убыванию:

from myapp.models import Article months = Article.objects.dates('created_at', 'month', order='DESC') for month in months: print(month)

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

"2026-09-01" "2026-08-01" "2026-07-01"

Пример

Получим уникальные дни из поля 'published_at' для записей со статусом 'published':

from myapp.models import Article days = (Article.objects .filter(status='published') .dates('published_at', 'day') ) for day in days: print(day)

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

"2026-09-01" "2026-09-02" "2026-09-05"

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

  • метод datetimes,
    который возвращает уникальные даты и время из QuerySet
  • метод filter,
    который фильтрует QuerySet по заданным условиям
  • метод order_by,
    который сортирует QuerySet по указанным полям
  • метод values,
    который возвращает QuerySet словарей вместо объектов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить