我的模型如下:
class Task(models.Model):
value= models.IntegerField()
data = models.CharField(max_length=50, blank=True)
我想进行查询以返回每个不同数据的值的总和。我尝试了以下但是它没有工作:
Task.objects.all().distinct('data').annotate(value = Sum('value'))
我收到了这个错误:
NotImplementedError: annotate() + distinct(fields) not implemented.
答案 0 :(得分:1)
尝试使用values
代替distinct
,这将按data
进行分组(不确定这是否是您需要的)。
Task.objects.values('data').annotate(Sum('value'))
尝试.extra
(选择整个对象)
Task.objects.extra(select={'values_sum': "SELECT SUM(values) FROM myapp_task t WHERE t.data = myapp_task.data"})