【发布时间】:2020-12-13 20:31:30
【问题描述】:
Models.py
class Entity(models.Model):
entity = models.CharField(max_length=40)
class Period(models.Model):
period = models.CharField(max_length=10)
class Product(models.Model):
entity = models.ForeignKey(Entity, on_delete=models.CASCADE, default=None, blank=True, null=True)
period = models.ForeignKey(Period, on_delete=models.CASCADE, default=None, blank=True, null=True)
sku = models.CharField(max_length=12)
class Sale(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE, default=None, blank=True, null=True)
price = models.DecimalField(max_digits=11, decimal_places=2)
Views.py
if request.method == 'POST':
if form.is_valid():
entityquery = form.cleaned_data['entity']
periodquery = form.cleaned_data['period']
entities = Entity.objects.get(entity=entityquery)
periods = Period.objects.get(period=periodquery)
products = Product.objects.filter(entity=entityquery, period=periodquery).values('id', 'period', 'entity', 'sku')
for sales in products.iterator():
sales = Sale.objects.filter(product__sku=product.sku, product__entity=entityquery, product__period=periodquery).aggregate(Sum('price'))
return sales
args = {'form': form, 'products': products, 'periods': periods, 'entities': entities, 'sales': sales}
return render(request, "products_list.html", args)
预期结果
到目前为止,我能够根据标准(期间和实体)列出所有已售出的 SKU 商品。假设 SKU 12 有两个销售额 10 美元和 30 美元,SKU 23 有三个销售额 5 美元、5 美元和 6 美元 我需要显示每种产品的总销售额。
输入
Entity: Company XZY
Period: November
输出
SKU Total Sales
12 40.00
23 16.00
【问题讨论】:
-
在这里找到解决方案:enter link description here
标签: django django-models django-views django-forms django-templates