Можно ли использовать агрегацию в аннотации queryset?
Я использую annotate на кверисете django:
class MyModel(models.Model):
my_m2m = models.ManytoManyField()
my_qs = MyModel.objects.all().annotate(total_m2m=Count('my_m2m'))
Это дает желаемый результат. Например:
>>> my_qs[0].total_m2m
>>> 3
Как использовать aggregate для подсчета общего количества my_m2m
в наборе запросов? Например,
>>> my_qs.aggregate_m2m
>>> 9
Вы можете подвести итог, таким образом:
from django.db.models import Count, Sum
MyModel.objects.annotate(total_m2m=Count('my_m2m')).aggregate(
total=Sum('total_m2m')
)
но здесь более логично агрегировать сразу:
from django.db.models import Count
MyModel.objects.aggregate(
total=Count('my_m2m')
)