Django max基于外键查询集

时间:2015-05-18 17:52:41

标签: python django django-queryset annotate

我想基于外键注释一个查询集,即

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

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

我想使用BMax查询集进行注释,但每个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')

1 个答案:

答案 0 :(得分:1)

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

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