From f61d0b85e8ecce09562c3ca38200d392fb20ebd1 Mon Sep 17 00:00:00 2001 From: Thomas Steen Rasmussen Date: Thu, 22 Jul 2021 08:02:28 +0200 Subject: [PATCH] use Count() to get the number of paid orders for the product --- src/backoffice/templates/ticket_stats_detail.html | 2 +- src/shop/models.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/backoffice/templates/ticket_stats_detail.html b/src/backoffice/templates/ticket_stats_detail.html index 7cc54208..06d3680a 100644 --- a/src/backoffice/templates/ticket_stats_detail.html +++ b/src/backoffice/templates/ticket_stats_detail.html @@ -31,7 +31,7 @@ {{ p.price|floatformat:"2" }} DKK {{ p.cost|floatformat:"2" }} DKK {{ p.profit|floatformat:"2" }} DKK - {{ p.order_set.count }} + {{ p.order_count }} {{ p.total_units_sold }} {{ p.total_revenue|floatformat:"2" }} DKK {{ p.total_cost|floatformat:"2" }} DKK diff --git a/src/shop/models.py b/src/shop/models.py index 06b89b33..4bedcf5b 100644 --- a/src/shop/models.py +++ b/src/shop/models.py @@ -7,7 +7,7 @@ from django.contrib import messages from django.contrib.postgres.fields import DateTimeRangeField from django.core.exceptions import ValidationError from django.db import models -from django.db.models import F, Sum +from django.db.models import Count, F, Sum from django.urls import reverse_lazy from django.utils import timezone from django.utils.dateparse import parse_datetime @@ -403,6 +403,7 @@ class ProductStatsManager(models.Manager): .annotate(total_revenue=F("price") * F("total_units_sold")) .annotate(total_cost=F("cost") * F("total_units_sold")) .annotate(total_profit=F("profit") * F("total_units_sold")) + .annotate(order_count=Count("orderproductrelation__order")) )