我正在为Django上的一个小型电子市场项目建立一个部分、类别和子类别的列表。你知道吗
我有这样一个模型:
Section > Category (FK Section) > SubCategory (FK Category) > ShopProduct (FK SubCategory)
问题是我有许多类别(和子类别)是空的,因此我使用以下方法过滤查询集中的数据:
{% 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 %}
一般原则是从要检索的对象开始,或者在本例中是从count开始。所以,你需要从ShopProduct开始,并遵循它们之间的关系。以这样的观点:
但是,不能在模板中执行此操作,因为不能使用参数调用方法。所以您需要将其定义为Section类上的一个方法,将
my_section
替换为self
,然后您可以执行(例如){{ section.get_product_count }}
。你知道吗相关问题 更多 >
编程相关推荐