我有三个模型:
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()
qty
我想通过获取所有相关的 ItemParts 并将它们乘以它们的相关 Items来告诉每个 Variety 有多少被制成了in_stock
Items。
我已经做到了这一点:
Variety.objects.all().prefetch_related('itempart_set').values('name').annotate(
Sum(F("itempart_set__qty") * F("itempart_set__item_set__in_stock")
)
这行得通吗?它会将乘积相加,还是简单地将总和相乘?