События фильтра 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

Нужно ли кодировать целый набор различных опций или есть более простой и элегантный метод?

Ответы на вопрос(6)

Ваш ответ на вопрос