Возможно ли в Django суммировать нечисловые поля?
Я узнал, что мы можем суммировать все (или отфильтрованные) столбцы, как price
из этого вопроса .
ItemPrice.objects.aggregate(Sum('price'))
Но возможно ли в Django суммировать длину нечислового поля length, например CharField
или JSONField
? Псевдокод выглядит следующим образом.
User.objects.aggregate(Sum(len('username')))
from django.db.models.functions import Length
from django.db.models import Sum
User.objects.annotate(l=Length("username")).aggregate(Sum("l"))
вы можете попробовать использовать
from django.db.models.functions import Length User.objects.aggregate(Sum(Length('username')))
Для JSONFied мы можем использовать Count
для суммирования всех элементов.
from django.db.models import Sum, Count
User.objects.annotate(l=Count("json_filed")).aggregate(Sum("l"))