使用model.objects.all()时,将查询减少到相同的Django模型
我需要对来自同一模型的多个列执行聚合求和,目前有7个查询基于我当前的设置使用model.objects.all()时,将查询减少到相同的Django模型,django,django-templates,django-views,Django,Django Templates,Django Views,我需要对来自同一模型的多个列执行聚合求和,目前有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 = Tr
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')
我知道必须有一个干涸的方法来做这件事。谢谢您的帮助。您可以在一个查询中完成这一切:
traffic = Traffic.objects.all().aggregate(Sum('sessions'),
Sum('new_users'),
...)
traffic_sessions = traffic.get('sessions_sum')
...
伟大的我有两个问题。非常感谢。