2015-10-05 75 views
2

我有一個模型,它存儲與關聯關聯的人的日期範圍。Django queryset:group_by並比較最新值

因此,數據存儲是這樣的:

person | start_date | end_date 
Person1 | 2014-05-01 | 2014-10-20 
Person1 | 2015-01-10 | 2015-05-12 *I want this entry 
Person2 | 2012-11-11 | 2013-01-02 
Person2 | 2014-02-12 | NULL 
Person3 | 2015-02-12 | 2015-08-01 *I want this entry 

我怎樣才能得到只有誰離開該協會成員? (上一個日期範圍的end_date大於或等於上一個日期範圍的start_date)。

型號:

class Period(models.Model): 
    person = models.ForeignKey(Person) 
    start_date = models.DateField() 
    end_date = models.DateField(null=True) 

謝謝!

回答

0

我不知道你需要什麼,但你可以在django queryset api中找到它。

Entry.objects.filter(pub_date__range =(日期,結束日期)) Entry.objects.exclude(pub_date__gt = datetime.date(2015,5,12))

+0

基本上,我只想得到成員在任何「start_date」和「end_date」字段中都沒有NULL值。 – bleroy