我有一个类别模型定义为:
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 个父母。
我将如何编辑查询以回顾我的类别树?