Задать вопрос
@adrenalinruslan

Как отфильтровать записи связанных таблиц?

Ситуация следующая, я хочу получить всех клиентов, которые выполнили условие хотя бы одного статуса.
Клиент может иметь карту, а карта клиента может иметь несколько статусов с некими условиями.

Хочу выполнить запрос по типу: Найти клиентов, посчитать у каждого клиента кол-во транзакции (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()
  • Вопрос задан
  • 56 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы