Как добавить distinct() к фильтру аннотаций в Django queryset?
roi_values_to_sum = (Q(trades__created_at__date__lt=one_year_back) & ~Q(trades__roi_plus_year=None))
roi_sum_field = f('roi_plus_year')
users = (
User.objects
.annotate(
roi_sum = Sum(roi_sum_field, filter = roi_values_to_sum),
.exclude(roi_sum=None)
.order_by("-roi_sum")
В приведенном выше запросе я хочу аннотировать roi_sum
к пользователям, которых я получаю, однако я хочу суммировать только отдельные торговые объекты, поскольку один и тот же торговый объект появляется несколько раз. Как я могу передать distinct()
в поле filter=
, чтобы roi_sum
суммировал только отдельные объекты?
В приведенном выше примере trades
прикреплены к пользователям, и у них есть created_at
даты.