from django.db.models import Sum from Base.models import ProductList from Movement.models import Product def metric(Day): products = ProductList.objects.all() product_mov = Product.objects.filter(date=Day).values() product_report = {} for product in products: product_item = product_mov.filter( product__name=product.name, ).aggregate(Sum('gross_value'))['gross_value__sum'] or 0 product_cont = product_mov.filter( product__name=product.name, ).aggregate(Sum('quantity'))['quantity__sum'] or 0 product_report[product.name] = { 'product_item':product_item, 'product_cont':product_cont, } sum_of_product = sum(item['product_item'] for item in product_report.values()) or 0 return { 'product_report':product_report, 'sum_of_product':sum_of_product, }