Аннотированное значение дает Нет, нужно 0
order_list_cases =(order_list.values('user_id').annotate(dcount=Count('user_id'),customer_paid_sum=(Sum('invoice__transaction_invoice__transaction_amount'))
В этом коде customer_paid_sum
возвращает None, я хочу выдать 0, если это None. Я пробовал использовать else case, но ничего не получилось.
Вы можете работать с Coalesce
[Django-doc] для возврата 0
вместо None
, если агрегат работает над пустой коллекцией:
from django.db.models import Value
from django.db.models.functions import Coalesce
order_list_cases = order_list.values('user_id').annotate(
dcount=Count('user_id'),
customer_paid_sum=Coalesce(
Sum('invoice__transaction_invoice__transaction_amount'),
Value(0)
)
)