繁体   English   中英

Django ORM对象数

[英]Django ORM object count

考虑以下伪模型:

class BaseProduct:
   quantity_available = Integer

class Box(BaseProduct):
   items_in_box = Integer

>> BaseProduct.objects.count()
>> Integer

但是,如何检索产品总数,因此:

for each object[quantity_available * items_in_box] * total_objects

解:

我使用Simeon Visser的'sum'作为部分解决方案,在Base类中添加了一个属性:

@property
def _box_count(self):
    try:
        return self.items_in_box * self.quantity_available
    except AttributeError:
        return self.quantity_available

sum([item._box_count for item in BaseProduct.objects.all()])

请尝试以下操作:

sum([box.quantity_available * box.items_in_box for box in Box.objects.all()]

它检索所有包装盒,并为每个包装盒计算该包装盒的可用数量乘以该类型包装盒中项目的数量。 最后,它将所有这些值相加,从而获得产品总数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM