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"})
我有一个模型如下:
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"})