Zdarzenia filtru Django występujące dzisiaj

Staram się logicznie reprezentować następujące elementy w filtrze Django. Mam model „zdarzenia” i model lokalizacji, który można przedstawić jako:

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()

W przypadku danej lokalizacji chcę wybrać wszystkie wydarzenia, które mają miejsce dzisiaj. Wypróbowałem różne strategie za pomocą metody „bookings_today” w menedżerze zdarzeń, ale właściwa składnia filtru wymyka mi się:

class EventManager(models.Manager):
    def bookings_today(self, location_id):
        bookings = self.filter(location=location_id, start=?, end=?)

date () kończy się niepowodzeniem, ponieważ zeruje czasy, a czas w ciągu dnia ma krytyczne znaczenie dla aplikacji, to samo dotyczy min i maksimum dat oraz używania ich jako podpórek. Ponadto istnieje wiele możliwych ważnych konfiguracji:

start_date < today, end_date during today
start_date during today, end_date during today
start_date during today, end_date after today

Czy muszę kodować cały zestaw różnych opcji, czy istnieje bardziej prosta i elegancka metoda?

questionAnswers(6)

yourAnswerToTheQuestion