#python #django #django-models #django-orm
#python #django #django-модели #django-orm
Вопрос:
У меня есть следующая модель:
class Order(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
time = models.DateTimeField()
Как бы я проверил, находится ли указанное мной время в пределах 1 часа от времени выполнения любого из заказов пользователем 1. Пример: я указываю время и отправляю его в конечную точку, конечная точка проверяет, находится ли время предоставления в пределах часа от любого из других заказов с пользователем 1. Как я могу проверить, находится ли время в пределах 1 часа от любой из моделей заказа?
Ответ №1:
Вы можете использовать диапазон, поэтому вы получите Order
между 2 датами и временем :
import datetime
from django.utils import timezone
specific_time = timezone.now()
# i am not sure if you want in range `timedelta` - 1 h and `timedelta` 1 h
# but it's easy to modify
order_range = (specific_time - datetime.timedelta(hour=1), specific_time)
orders_in_range = Order.objects.filter(time__range=order_range)
Комментарии:
1. Извините за уточнение, я хочу убедиться, что указанное пользователем время не находится в пределах 1 часа от любого из полей времени модели заказа.
2. просто переопределите метод сохранения и сделайте
exists()
, чтобы вы могли вызвать ошибку