Как использовать множественные аннотации с фильтром в Django? - PullRequest
0 голосов
/ 28 сентября 2018

Я использую приведенный ниже код для получения результата, но всегда получаю одинаковые выходные данные для total_deal и total_coupons.Я не знаю, что происходит в этом коде.

total_coupons = Count('coupon', filter=Q(coupon__is_sale__lte=0))
total_deals = Count('coupon', filter=Q(coupon__is_sale__gt=0))

queryset = coupon.objects.values('store_id','store_name','store_site','affiliate_url').annotate(total_deals=total_deals, total_coupons=total_coupons)

Так как можно написать запрос, чтобы он дал мне результат ниже?

store_id  store_name store_site affiliate_url total_coupons total_deals
1         abc        abc.com    anything       5             3         (totsl is 8)

Есть ли какой-либо способ получить результат выше?1007 *

1 Ответ

0 голосов
/ 28 сентября 2018

Вы можете попробовать это, annotate(total_deals=total_deals).annotate(total_coupons=total_coupons) не .annotate(total_deals=total_deals, total_coupons=total_coupons)

queryset = coupon.objects.values('store_id','store_name','store_site','affiliate_url').annotate(total_deals=total_deals).annotate(total_coupons=total_coupons)
...