Django:获取顶级类别的所有模型实例

时间:2013-08-30 14:40:30

标签: python django django-mptt

我有一个像这样的heirarchy:

Parent Cat
     Sub Cat
         Item
     Sub Cat
         Item
         Item
Parent Cat
...

拥有父类别的名称/实例我想获得与父猫相关的所有项目。我目前正在使用Django-Categories,它使用了Django-MTPP但我无法弄清楚如何在不构建for循环的情况下做到这一点。认为这些包装的重点是如此,我不必这样做。

我的模特看起来像:

class Item(models.Model):
    title = models.TextField() # `null` and `blank` are false by default
    category = models.ForeignKey('ProductCategory')
    price = ....

    def __unicode__(self):  # Python 3: def __str__(self):
        return self.title

from categories.models import CategoryBase

class ProductCategory(CategoryBase):

    class Meta:
        verbose_name_plural = 'simple categories'

我尝试过:

parent_category = ProductCategory.objects.get(slug=parent_cat, parent=None)
items = parent_category.item_set.all()

但这不会产生任何结果。

1 个答案:

答案 0 :(得分:2)

您应过滤商品:

items = Item.objects.filter(category__parent=parent_category)

双重分数用于遵循模型关系或使用比简单相等更复杂的查找。文档here