我努力從邏輯上表示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()
對於一個給定的位置,我想選擇今天發生的所有事件。我已經通過在eventmanager進行了「bookings_today」的方法嘗試了各種策略,但正確的過濾器語法躲開我:
class EventManager(models.Manager):
def bookings_today(self, location_id):
bookings = self.filter(location=location_id, start=?, end=?)
日期(),因爲這將清零的時間出現故障時,白天的時間是關鍵該應用程序,同樣適用於日期的最小值和最大值,並將它們用作擋書。此外,還有多個可能的有效配置:
start_date < today, end_date during today
start_date during today, end_date during today
start_date during today, end_date after today
我需要編寫一整套不同的選擇或者是有一個更簡單巧妙的方法?
看看範圍內運營商之間的SQL也看到這個答案由@danielroseman:http://stackoverflow.com/questions/3963201/如何在兩個日期之間選擇與django –