Django SimpleListFilter最大记录

时间:2017-08-09 14:20:28

标签: python django filter max django-queryset

两种模式:

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
"""

我现在想为Django Admin构建一个SimpleListFilter, 筛选项目具有的最高/最新报告。 例如,如果我过滤2015年只有项目B应该显示。 (使用普通过滤器,此请求也会显示C,我不想要)

我尝试了一些时髦的东西......

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

但我只是因为不知道语法而迷失了......

请求结束我的猜谜游戏:)谢谢

1 个答案:

答案 0 :(得分:0)

我认为这应该有效:

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