Лукап minute

Лукап minute применяется к полям типа DateTimeField в методах фильтрации QuerySet, таких как filter или exclude. Он позволяет отфильтровать записи, у которых минута в значении поля DateTimeField соответствует заданному числовому значению. Лукап принимает целое число от 0 до 59 и использует часовой пояс, указанный в настройках проекта или в модели.

Синтаксис

pythonModel.objects.filter(field__minute=value)

Пример

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

pythonfrom myapp.models import LogEntry

logs = LogEntry.objects.filter(created_at__minute=0)
for log in logs:
  print(f"Log: {log.message} at {log.created_at}")

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

python"Log: System started at 2025-01-15 10:00:00"
"Log: Backup completed at 2025-01-15 15:00:00"

Пример

Отфильтруем заказы, оформленные в определенную минуту:

pythonfrom myapp.models import Order
from datetime import datetime

orders = Order.objects.filter(created_at__minute=30)
for order in orders:
  print(f"Order {order.id} created at {order.created_at}")

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

python"Order 123 created at 2025-01-20 14:30:00"
"Order 145 created at 2025-01-20 16:30:00"

Пример

Использование лукапа minute вместе с другими операторами поиска:

pythonfrom myapp.models import Event
from datetime import datetime

events = Event.objects.filter(
  start_time__minute=0,
  start_time__hour__gte=10,
  start_time__hour__lte=18
)
for event in events:
  print(f"Event: {event.title} at {event.start_time}")

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

python"Event: Meeting at 2025-01-22 12:00:00"
"Event: Workshop at 2025-01-22 15:00:00"

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

  • лукап year,
    который фильтрует по году значения поля DateTimeField
  • лукап month,
    который фильтрует по месяцу значения поля DateTimeField
  • лукап day,
    который фильтрует по дню значения поля DateTimeField
  • лукап hour,
    который фильтрует по часу значения поля DateTimeField