我有一个像这样的模型:
class Interval(models.Model):
start = models.Datetime()
end = models.Datetime(null=True)
我想查询所有大于5分钟的时间间隔。
我可以使用以下代码:intervals=Interval.objects.exclude(end=None).annotate(d=models.F("end")-models.F("start"))
当我执行 intervals[0].d
时,我得到了正确的间隔值。现在,我只想获取 d
大于5分钟的条目作为结果。
我尝试使用 intervals=Interval.objects.exclude(end=None).annotate(d=models.F("end")-models.F("start")).filter(d__gt=timedelta(0, 300))
,但是我收到了以下错误:TypeError: expected string or bytes-like object
。它试图将 timedelta 与 datetime 的正则表达式进行匹配。
有什么想法吗?
提前感谢!
.filter(end__lte=models.F("start")+timedelta(seconds=300))
。类似这样的吗? - itzMEonTVDurationField
。 - Willem Van Onsem