Ситуация следующая, я хочу получить всех клиентов, которые выполнили условие хотя бы одного статуса.
Клиент может иметь карту, а карта клиента может иметь несколько статусов с некими условиями.
Хочу выполнить запрос по типу:
Найти клиентов, посчитать у каждого клиента кол-во транзакции (visits) и отфильтровать клиентов, которые выполнили условие visits хотя бы у одного статуса (statuses).
В базе 1 клиент, у этого клиента 10 транзакции. Если запустить код ниже, то возвращает 2 одинаковых клиента, но у одного 10 транзакции, а другого 20, как это исправить ?
clients = Client.objects.not_deleted().annotate(
visits=models.Count(
'transactions', filter=models.Q(
transactions__amount__gt=0
)
)
).filter(wallet__statuses__visits__lte=models.F('visits')).distinct()