2016-08-29 46 views
0

的区别我有两个DateTimeFields模型:Django的 - 过滤查询由两个DateTimeFields

starttime = models.DateTimeField(db_column='starttime', blank=False, null=False) 
endtime = models.DateTimeField(db_column='endtime', blank=False, null=False) 

在我看来,我想他们之间的差别过滤此。例如,如果开始和结束之间的差异超过45秒。

我想这是一个猜测:

 .filter((models.F('endtime') - models.F('starttime')).seconds > 45)\ 

但没有奏效。有没有办法用Django ORM来做到这一点?

回答

3

您可以使用F表达式,如下所示。

from django.db.models import F 
from django.utils import timezone 


.filter(endtime__gt = models.F('starttime') + timezone.timedelta(0, 45)) 

它将仅返回endtime大于starttime + 45秒的行。

+0

太棒了,谢谢! –