Django 在查询集中的另一个不同字段上注释

Django annotate on another distinct field in queryset

我有一个模型如下:

class Task(models.Model):
    value= models.IntegerField()
    data = models.CharField(max_length=50, blank=True)

我想查询 return 每个不同数据的值的总和。我尝试了以下但没有用:

Task.objects.all().distinct('data').annotate(value = Sum('value'))

我遇到了这个错误:

NotImplementedError: annotate() + distinct(fields) not implemented.

尝试使用 values 而不是 distinct,这将按 data 分组(不确定这是否是您需要的)。

Task.objects.values('data').annotate(Sum('value'))

尝试 .extra(select 整个对象)

Task.objects.extra(select={'values_sum': "SELECT SUM(values) FROM myapp_task t WHERE t.data = myapp_task.data"})