Django mptt:获取类别

时间:2018-03-02 15:06:32

标签: django django-mptt

我希望我的类别显示该类别中的所有项目,包括后代类别,因此父类别包含子类别的所有项目。

我尝试将此方法添加到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 %}

2 个答案:

答案 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 %}