【问题标题】:Django MPTT : Filter by depth?Django MPTT:按深度过滤?
【发布时间】:2012-10-13 12:20:16
【问题描述】:

我想知道一些关于 django-mptt 的事情,因为我正在考虑将它用于工程协调项目。

我将有一个模型类(例如“接口”),在树中具有模型的外键(例如“位置”)。

我能否通过接口所指位置的深度来过滤接口?深度是父母的数量。

我还不知道如何组织我的数据,这就是我问的原因。我正在考虑使用 django-mptt(与部署时循环创建的模型相反,每个模型对应于一个树级别),但我害怕它会在某个时候阻止我并迫使我审查我的整个项目。

【问题讨论】:

    标签: python django django-models django-mptt mptt


    【解决方案1】:

    终于找到了我的答案:django-mptt dev documentation

    级别 节点在树中所处的级别(或“深度”)。

    根节点是 0 级,它们的直接子节点是 1 级,它们的 直系子女是 2 级,依此类推...

    为了方便起见,这个字段纯粹是非规范化的。它避免了 需要检查树结构来确定一个层次 特定节点并进行需要深入的查询 使用 Django 的 ORM 更容易实现帐户。例如,限制 为整个树检索的节点的级别数 或任何子树:

    # Retrieve root nodes and their immediate children only
    SomeModel.tree.filter(level__lte=1)
    

    【讨论】:

      猜你喜欢
      • 2010-10-11
      • 1970-01-01
      • 2012-09-04
      • 2015-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多