Django for pros:如何按开始时间和持续时间查询时隙?F()表达式? 问题

Django for pros:如何按开始时间和持续时间查询时隙?F()表达式? 问题,django,postgresql,Django,Postgresql,如何查询数据库中与我查询的特定下午5点到7点时段相交的时段 逻辑是这样开始的: Q(start_time__lt=start_hour) & Q(duration__gt=comparison_python_function(F('start_time'), query_start_time) 据我所知,我可以做一些简单的操作,比如F('column_name')+1。但是,在我的例子中,我需要一个python公式来计算TimeField和DecimalField之间的关系。据我所知

如何查询数据库中与我查询的特定下午5点到7点时段相交的时段

逻辑是这样开始的:

Q(start_time__lt=start_hour) &
Q(duration__gt=comparison_python_function(F('start_time'), query_start_time) 
据我所知,我可以做一些简单的操作,比如
F('column_name')+1
。但是,在我的例子中,我需要一个python公式来计算
TimeField
DecimalField
之间的关系。据我所知,这是不可能的

如果这两列不能直接比较,但相互依赖,那么如何处理查询时隙?或者如果这不能做到,我怎么做?我是否错过了另一种方法

一段历史: 我需要在数据库中存储时间段。我尝试了
start\u time
end\u time

这种方法的问题是,在午夜之后,
end\u时间
变得比
start\u时间
小,这会把一切都搞砸

采用
开始时间
持续时间
的方法更有意义。开始时间类型为
models.TimeField()
,持续时间类型为
models.DecimalField()

这里的大问题是查询数据库,如前所述。
将Django 1.7与Postgres一起使用

Django 1.8(LTS版本)引入了一个新的版本,即将发布(可能是本周三)。如果升级是你的选择,我建议你使用它。它使用PostgreSQL的本机
interval
数据类型。我相信有第三方应用程序在1.7版中实现了同样的功能。否则,它将需要一点自定义SQL。即使不太理想,1.8c1也可以通过
DurationField
将postgres
timestamp
interval
混合使用,谢谢。我希望看到一个比升级更简单的解决方案。