Ich habe drei Modelle:Django Queryset - Wie berechne ich verwandte Modelle mit prefetch_related?
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()
Ich mag sagen, wie viel von jeder Sorte in Artikel gemacht wurde, indem alle im Zusammenhang ItemParts bekommen und ihre qty
durch die in_stock
ihre verwandten Artikel zu multiplizieren.
Ich habe so weit gekommen:
Variety.objects.all().prefetch_related('itempart_set').values('name').annotate(
Sum(F("itempart_set__qty") * F("itempart_set__item_set__in_stock")
)
Wird diese Arbeit? Wird es die Produkte summieren, oder wird es einfach die Summen multiplizieren?
"Wird das funktionieren?" Hast du es versucht_? Sicher wäre das einfacher gewesen, als eine Frage zu Stack Overflow zu stellen ... – Chris
Nun, ich versuche meine Modelle richtig zu entwerfen. Also musste ich sie aufbauen, eine Menge gefälschter Daten eingeben und es versuchen. Ich hatte gehofft, dass jemand bestätigen könnte, bevor ich die Mühe mache, sie falsch zu bauen. –