Django - 按两个DateTimeFields

时间:2016-08-29 22:47:01

标签: python 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做到这一点?

1 个答案:

答案 0 :(得分: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秒的行。