簡體   English   中英

如何在Django中獲得3級對象計數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM