我有一个带有两个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做到这一点?
答案 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秒的行。