注释过滤的相关模型的最小值

时间:2018-08-30 06:39:19

标签: django

我有一个“跟踪模型”,这些跟踪在不同图表(图表类型)中的每周排名

class Track(models.Model):
    id = models.CharField('Unique ID', max_length=100, primary_key=True)
    title = models.CharField('Track title', max_length=100)
    ...


class Rank(models.Model):
    id = models.AutoField(primary_key=True)
    trackid = models.ForeignKey(Track, related_name='rank')
    pos = models.PositiveIntegerField("Position", blank=True, null=True)
    charttype= models.CharField(max_length=10, choices=CHARTTYPE)
    ...

我首先查询特定的图表类型:

track_list_top100 = Track.objects.filter(rank__charttype='total')

之后,我想用该特定图表类型的该轨道的最高位置注释此QuerySet:

track_list_top100 = track_list_top100.annotate(highestpos=Min('rank__pos'))

但是我得到的是所有图表组合的最高位置。换句话说,我在第一个查询filter(rank__charttype='total')中设置的过滤器未在注释中使用。

任何想法如何做到这一点?预先感谢。

1 个答案:

答案 0 :(得分:0)

在Django ::ng-deep tbody tr.ng2-smart-row.selected { background:lightblue !important; border:1px solid blue;} 中,这可以通过

实现
>= 2.0

有关更多信息,请阅读文档https://docs.djangoproject.com/en/2.0/topics/db/aggregation/#filtering-on-annotations