【问题标题】:Django. Q Query on categorys姜戈。 Q 分类查询
【发布时间】:2013-02-22 23:47:33
【问题描述】:

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

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有14->15->42->16的分类,返回的分类号是16。我需要第一个分类级别,但是不知道有多少个父级。可以没有,或最多 3 个父母。

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

【问题讨论】:

    标签: python django django-q


    【解决方案1】:

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

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

    mptt 似乎是最新的。

    【讨论】:

      猜你喜欢
      • 2017-10-02
      • 2020-12-10
      • 2011-01-27
      • 2012-10-23
      • 2020-08-17
      • 2021-09-27
      • 2016-05-02
      • 2016-04-28
      • 2020-05-23
      相关资源
      最近更新 更多