2016-08-29 44 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

太棒了,謝謝! –