Лукап minute
Лукап minute применяется к полям типа DateTimeField в методах фильтрации QuerySet, таких как filter или exclude. Он позволяет отфильтровать записи, у которых минута в значении поля DateTimeField соответствует заданному числовому значению. Лукап принимает целое число от 0 до 59 и использует часовой пояс, указанный в настройках проекта или в модели.
Синтаксис
Model.objects.filter(field__minute=value)
Пример
Давайте отфильтруем логи, созданные в первую минуту часа:
from 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}")
Результат выполнения кода:
"Log: System started at 2025-01-15 10:00:00"
"Log: Backup completed at 2025-01-15 15:00:00"
Пример
Отфильтруем заказы, оформленные в определенную минуту:
from 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}")
Результат выполнения кода:
"Order 123 created at 2025-01-20 14:30:00"
"Order 145 created at 2025-01-20 16:30:00"
Пример
Использование лукапа minute вместе с другими операторами поиска:
from 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}")
Результат выполнения кода:
"Event: Meeting at 2025-01-22 12:00:00"
"Event: Workshop at 2025-01-22 15:00:00"