[英]How to get 3rd level Object count in Django
我正在為Django上的一個小型電子市場項目構建部分,類別和子類別的列表。
我有一個這樣的模型:
部分>類別(FK類別)>子類別(FK類別)> ShopProduct(FK子類別)
問題是我有很多類別(和子類別)為空,因此我使用以下命令過濾查詢集中的數據:
{% if section.shopcategory_set.count > 0 %}
如果分配給該部分的類別超過1個,它將過濾這些部分。 (但不會過濾是否分配了更深的項目)
所以,我想從第一個周期開始計算最終對象
就像是:
{% for section in sections %}
{% if section.category_set.subcategory_set.shopproduct_set.count > 0 %}
{{ section.name }}
{% endif %}
{% endfor %}
一般原則是從要檢索的對象開始,或者在這種情況下開始計數。 因此,您需要從ShopProduct開始並遵循這些關系。 認為將是:
ShopProduct.objects.filter(subcategory__category__section=my_section)
但是,您無法在模板中執行此操作,因為您無法使用參數調用方法。 因此,您需要將其定義為Section類的一種方法,用self
代替my_section
,然后可以執行(例如) {{ section.get_product_count }}
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.