簡體   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