【发布时间】:2018-01-15 06:20:18
【问题描述】:
我有三个模型:
class Variety(models.Model)
name = models.CharField(max_length=24)
class Item(models.Model)
name = models.CharField(max_length=24)
in_stock = models.IntegerField()
class ItemPart(models.Model)
variety = models.ForeignKey(Variety)
product = models.ForeignKey(Product)
qty = models.IntegerField()
我想通过获取所有相关的 ItemParts 并将它们的 qty 乘以它们的相关 Item 的 in_stock 来知道每种 Variety 有多少被制成了 Item。
我已经走到这一步了:
Variety.objects.all().prefetch_related('itempart_set').values('name').annotate(
Sum(F("itempart_set__qty") * F("itempart_set__item_set__in_stock")
)
这行得通吗?它会将乘积相加,还是简单地将总和相乘?
【问题讨论】:
-
“这行得通吗?”你有没有尝试过?这肯定比在 Stack Overflow 上提问更容易……
-
好吧,我正在尝试正确设计我的模型。所以我必须建立它们,放入一堆假数据并尝试一下。我希望有人能在我把它们弄错之前确认一下。
标签: django django-queryset django-aggregation