递归查询:将一个字段与另一个字段进行比较

时间:2012-11-21 21:23:56

标签: django

我有一个类似于这个的模型:

class Trip(models.Model):
    departure = models.DateTimeField()
    arrival = models.DateTimeField()

我想做一个返回对象的查询,这些对象的到达时间比出发时间至少晚了2个小时。

Trip.objects.filter(arrival__gt = "departure" + timedelta(hours=2))

这甚至可能吗?感谢

1 个答案:

答案 0 :(得分:2)

您正在寻找filters that reference fields ont the model

  

但是,如果要比较模型字段的值,该怎么办?   同一型号的另一个领域?

请参阅此示例:

>>> from datetime import timedelta
>>> Entry.objects.filter(mod_date__gt=F('pub_date') + timedelta(days=3))

对于你的情况:

from django.db.models import F
Trip.objects.filter(arrival__gt = F('departure') + timedelta(hours=2))