2

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

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

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

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

4

1 回答 1

9

终于找到了我的答案:django-mptt 开发文档

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

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

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

# Retrieve root nodes and their immediate children only
SomeModel.tree.filter(level__lte=1)
于 2012-10-23T14:26:16.390 回答