События фильтра Django, происходящие сегодня
Я изо всех сил пытаюсь логически представить следующее в фильтре Django. У меня есть «событие» модель и модель местоположения, которая может быть представлена в виде:
class Location(models.Model):
name = models.CharField(max_length=255)
class Event(models.Model):
start_date = models.DateTimeField()
end_date = models.DateTimeField()
location = models.ForeignKeyField(Location)
objects = EventManager()
Для данного места я хочу выбрать все события, происходящие сегодня. Я пробовал разные стратегии через "bookings_today" метод в EventManager, но правильный синтаксис фильтра ускользает от меня:
class EventManager(models.Manager):
def bookings_today(self, location_id):
bookings = self.filter(location=location_id, start=?, end=?)
date () завершается ошибкой, так как это обнуляет время, а время в течение дня является критическим для приложения, то же самое относится к минимальной и максимальной датам и их использованию в качестве форзацев. Кроме того, существует несколько возможных допустимых конфигураций:
start_date < today, end_date during today
start_date during today, end_date during today
start_date during today, end_date after today
Нужно ли кодировать целый набор различных опций или есть более простой и элегантный метод?