2017-08-09 63 views
0

兩種型號:Django的SimpleListFilter最高紀錄

project(models.Model): 
name = models.CharField... 

yearreport((models.Model) 
year = [2014,2015,2016] #example 
project = models.ForeignKey(project) 

""" examples: 
Project A has reports for 2014 
Project B has reports for 2014,2015 
Project C has reports for 2014,2015,2016 
""" 

現在我想建立一個SimpleListFilter的Django管理, 該過濾器最高/最近的報告中的一個項目了。 例如,如果我過濾2015年只有項目B應該顯示。 (與正常的過濾器,這個要求也將顯示C,我不希望出現這種情況)

我嘗試了一些時髦的東西......

queryset.filter(Max('yearreport__year')==self.value())) 

,但我只是失去了在不知道的語法。 。

普萊斯結束我的猜謎遊戲:)謝謝

回答

0

我覺得某事像這應該工作:

queryset.annotate(
    max_year=Max('yearreport__year') 
).filter(
    yearreport__year=max_year 
)