2017-08-09 80 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 
)