我想知道我计算 quantity * price_gross 的方法是否正确。或者是否有更好的方法在 Ticket.objects. 查询集中乘以这些值?
event = Event.objects.get(pk=4)
test = Ticket.objects.filter(event=event).values('quantity', 'price_gross')
result = 0
for x in test:
result += x['quantity']*x['price_gross']
print(result)
更新:
Ticket.objects.filter(
event__organizer__in=self.organizers,
event__status=EventStatus.LIVE,
).values('event__pk', 'pk')
.order_by('event__pk')
.annotate(
total_gross=F('quantity') * F('price_gross'),
)
.aggregate(Sum('total_gross'))
请您参考如下方法:
是的。确实有一种方法可以做到这一点,那就是使用 Query Expressions
test = Ticket.objects.filter(event=event).annotate(total=F('quantity') * F('price_gross'))
