Python Django MPTT:按深度过滤?
我想了解一下django mptt,因为我正在考虑将其用于工程协调项目 我将有一个模型类(比如“Interface”),在树中有一个模型的外键(比如“Location”) 我是否能够根据接口引用位置的深度过滤接口?深度是指父母的数量Python Django MPTT:按深度过滤?,python,django,django-models,django-mptt,mptt,Python,Django,Django Models,Django Mptt,Mptt,我想了解一下django mptt,因为我正在考虑将其用于工程协调项目 我将有一个模型类(比如“Interface”),在树中有一个模型的外键(比如“Location”) 我是否能够根据接口引用位置的深度过滤接口?深度是指父母的数量 我还不知道如何组织我的数据,这就是我问的原因。我正在考虑使用django mptt(与部署时由循环创建的模型相反,每个模型对应一个树级别),但我担心它会在某个点上阻止我,迫使我检查整个项目。最终找到了我的答案: 级别节点位于树中的级别(或“深度”) 根节点是级别0,
我还不知道如何组织我的数据,这就是我问的原因。我正在考虑使用django mptt(与部署时由循环创建的模型相反,每个模型对应一个树级别),但我担心它会在某个点上阻止我,迫使我检查整个项目。最终找到了我的答案: 级别节点位于树中的级别(或“深度”) 根节点是级别0,它们的直接子节点是级别1,它们的 直系子女为2级,以此类推 为了方便起见,此字段纯粹是非规范化。它避免了 需要检查树结构以确定 特定节点,并进行需要考虑深度的查询 使用Django的ORM更容易实现帐户。例如,限制 为整个树检索的节点级别数 或任何子树:
# Retrieve root nodes and their immediate children only
SomeModel.tree.filter(level__lte=1)