2012-11-21 122 views
2

我有類似這樣的一個模型:遞歸查詢:一個領域比較其他同類的

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

我想使返回的對象,其中的到來至少2個小時後查詢比離開。

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

這甚至有可能嗎?感謝

回答

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)) 
+0

@darkade,你解決你的問題? – danihp

+0

是的,對於延遲抱歉。這很好 – Darkade