我需要在同一型号的多个列上执行总和,目前我的当前设置有7个查询
def traffic_list(request, template_name='traffic_list.html'):
traffic = Traffic.objects.all()
total_sessions = Traffic.objects.all().aggregate(Sum('sessions')).get('sessions__sum')
total_new_users = Traffic.objects.all().aggregate(Sum('new_users')).get('new_users__sum')
total_reminder = Traffic.objects.all().aggregate(Sum('reminder')).get('reminder__sum')
total_campaigns = Traffic.objects.all().aggregate(Sum('campaigns')).get('campaigns__sum')
total_new_sales = Traffic.objects.all().aggregate(Sum('new_sales')).get('new_sales__sum')
total_sales_renewals = Traffic.objects.all().aggregate(Sum('sales_renewals')).get('sales_renewals__sum')
我知道必须有一种干嘛的做法。谢谢你的帮助。
答案 0 :(得分:2)
您可以在一个查询中执行此操作:
traffic = Traffic.objects.all().aggregate(Sum('sessions'),
Sum('new_users'),
...)
traffic_sessions = traffic.get('sessions_sum')
...