我有一个类别模型定义为:
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)
如果某个项目的类别为14-> 15-> 42-> 16,则返回的类别编号为16.我需要第一个类别级别,但我不知道有多少个父级。没有,或最多3个父母。
如何编辑查询以回顾我的类别树?
答案 0 :(得分:0)
Django不进行SQL独立树爬行,但模型树库是在这里。
对于递归查找,您可能希望使用原始sql或库作为django-mptt或django-treebeard。
mptt似乎更新了。