0

我有一个类别模型定义为:

class Category(models.Model):
    number = models.PositiveIntegerField()
    name = models.CharField(max_length=200)

    parent = models.ForeignKey('self', blank=True, null=True)

    def __unicode__(self):
        name = unicode(self.name)
        if self.parent:
            name =  unicode(self.parent) + u'-->' + name
        return name

类别最多可以有 3 级父级(类别 1 -> 类别 2 -> 类别 3 -> 类别 4)

我需要查看数据库中的所有项目,但当且仅当位置 == Ebay 时才排除基本类别 14。

我正在使用:

    query = Q(category__number=14) & ~Q(location__name="EBAY")
    queryset.exclude(query)

如果一个item的category是14->15->42->16,返回的category编号是16。我需要第一个category level,但是不知道有多少个parent。可以没有,或最多 3 个父母。

我将如何编辑查询以回顾我的类别树?

4

1 回答 1

0

Django 不进行独立于 SQL 的树爬取,但模型树库在这里。

对于递归查找,您可能希望使用原始 sql 或库作为 django-mptt 或 django-treebeard。

mptt 似乎是最新的。

于 2013-03-07T16:53:04.260 回答