Фильтрация аннотированных агрегированных столбцов с помощью django_filters
Предположим, у меня есть модель Customer, которая связана с моделью Order. Я хочу получить список клиентов и сумму (или счетчик) их заказов в диапазоне дат. Если в данном диапазоне не было ни одного заказа для какого-либо клиента, аннотированный столбец будет равен 0.
Если я использую django_filters FilterSet, это изменяет основной пункт WHERE запроса, так что строка без заказа не будет отображаться, но я хочу что-то вроде:
.annotate(
order_count=Count(
'customer_orders',
filter=Q(
customer_orders__create_time__gte=query_params.get('order_after')
) & Q(
customer_orders__create_time__lte=query_params.get('order_before')
)
)
)
есть ли изящный способ добиться этого, используя django_filters FilterSet?