我希望我的类别显示该类别中的所有项目,包括后代类别,因此父类别包含子类别的所有项目。
我尝试将此方法添加到models.py
中的Category类 def get_all_products(self):
# To display all items from all subcategories
return Product.objects.filter(category__in=Category.objects.get_descendants(include_self=True))
并将其添加到我的template.html中,但它不起作用。我做错了什么?
{% for product in instance.get_all_products %}
<li>{{ product.product_name }}</li>
{% empty %}
<li>No items</li>
{% endfor %}
答案 0 :(得分:1)
在查看功能中,我使用:
products = models.Product.objects.filter(category__in=category.get_descendants(include_self=True))
答案 1 :(得分:0)
我已经意识到我哪里出错了,正确的代码是:
def get_all_products(self):
# To display all items from all subcategories
return Product.objects.filter(category__in=self.get_descendants(include_self=True))
{% for product in product.get_all_products %}
<li>{{ product.product_name }}</li>
{% empty %}
<li>No items</li>
{% endfor %}