Фильтрация аннотированных агрегированных столбцов с помощью 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?

Вернуться на верх