Возможно ли в 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"))
Вернуться на верх