我尝试为我的材料模型计算总计,这些总计存储在不同的表中,例如库存,采购订单,SO
因此,我决定在Material Model Manager中进行聚合
class MaterialInventoryManager(models.Manager):
def total_active_inventory(self):
return self.get_queryset().annotate(total_inventory=Sum('inventory__quantity')).filter(is_active = True)
class Material(models.Model):
version = IntegerVersionField( )
code = models.CharField(max_length=30)
name = models.CharField(max_length=30)
description = models.TextField(null=True, blank=True)
materialuom = models.CharField(max_length=1,
choices=UOM_CHOICES)
creation_time = models.DateTimeField(auto_now_add=True, blank=True)
total_inventory = MaterialInventoryManager()
objects = MaterialInventoryManager()
@with_author
class Inventory(models.Model):
material = models.OneToOneField('item.Material',null=True, blank=True)
# material_UOM = models.OneToOneField('item.UOM_BINUOM',null=True, blank=True)
warehouse_Bin = models.ForeignKey(WarehouseBin)
is_active = models.BooleanField(default=True)
quantity = models.DecimalField(max_digits=8, decimal_places=5)
creation_time = models.DateTimeField(auto_now_add=True, blank=True)
试试这个
return self.get_queryset()
.filter(is_active = True)
.aggregate(total_inventory=Sum('inventory__quantity'))
.get('total_inventory')
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句