J'ai trois modèles:Django Queryset - Comment faire des maths sur des modèles liés avec 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()
Je voudrais dire combien de chaque variété a été transformée en produits en obtenant tous les ItemParts liés et en multipliant leur qty
par le in_stock
de leurs articles connexes.
Je suis arrivé jusqu'ici:
Variety.objects.all().prefetch_related('itempart_set').values('name').annotate(
Sum(F("itempart_set__qty") * F("itempart_set__item_set__in_stock")
)
Est-ce que ce travail? Va-t-il additionner les produits, ou simplement multiplier les sommes?
"Est-ce que cela fonctionnera?" L'as tu essayé_? Sûrement cela aurait été plus facile que de poser une question sur Stack Overflow ... – Chris
Eh bien, j'essaie de concevoir correctement mes modèles. Donc je devrais les construire, mettre dans un tas de données fausses et l'essayer. J'espérais que quelqu'un pourrait confirmer avant que je prenne la peine de leur donner tort. –