Django 5 для начинающих

Прогресс по курсу:  9/1004

3.7 Django ORM, поисковые поля и агрегатные функции
4 из 16 шагов пройдено
0 из 60 баллов  получено

 date()

При необходимости выборки сотрудников, которые были созданы в определенную дату, мы можем использовать следующий метод, для начала нужно импортировать нужные библиотеки:

from datetime import datetime, date, time
Worker.objects.filter(created__date=date(2023, 11, 14))

Все эти сотрудники были созданы в одну дату, 14.11.2023.

 

year()

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

Worker.objects.filter(created__year=2023) 

 

iso_year()

Работает аналогично методу year(), принимает год в формате ISO 8601.

 

month, day, week, week_day, quarter

Метод month принимает точное совпадение месяца:

Worker.objects.filter(created__month=11)

Метод day предназначен для точного совпадения дня.
Метод  week    поиск точного совпадения недели.
Метод week_day   поиск точного совпадения дня недели
Метод quarter   поиск точного совпадения квартала года.

Все данные методы работают аналогично методу month  и могут использоваться совместно с другими методами, например мы можем вывести всех сотрудников, созданных после 2001 года:

Worker.objects.filter(created__year__gt=2001)


  • Комментария
Будьте вежливы и соблюдайте наши принципы сообщества. Пожалуйста, не оставляйте решения и подсказки в комментариях, для этого есть отдельный форум.
Оставить комментарий

Решила проверить, как это работает, если название поля содержит двойное подчеркивание. Никак - makemigrations не пропустил. Если такое поле добавить в БД и модель вручную, оно игнорируется. Интересно, как джанго понимает, какие поля сетить в модель из таблицы, а какие нет.

@Ольга_Миронова,  Если я правильно вас понял, то действительно Django не дает добавить в БД поля, которые содержат двойное подчеркивание('_ _'), так как этот синтаксис используется в Django для поисковых полей и отношений между таблицами.

Worker.objects.filter(created__date=date(2023, 7, 14))

Все эти сотрудники были созданы в одну дату, 14.11.2023.

здесь в ORM запросе видимо опечатка - месяц необходимо поменять на 11.

@Евгений_Епишкин, Верно, спасибо, исправил.