Django max 基于外键查询集

Django max based on foreign key queryset

我想根据外键注释查询集,即

class A(models.Model):
    name = models.CharField(max_length=200)

class B(models.Model):
    value = models.IntegerField()
    a = models.ForeignKey(A)

我想用 Max 注释 B 查询集,但每个 Max 都被过滤到 a 外键。

我有一种感觉,我必须过滤掉我想要的外键,然后再注释。

qs = B.objects.filter(a=some_specific_instance_of_A).annotate(max_value=Max('value'))

但是想做一些类似的事情

qs = B.objects.annotate(max_value=Max('value'), key='a')

在注释之前使用 values 子句进行分组。

qs = B.objects.values('a').annotate(max_value=Max('value'))