我想知道关于 django-mptt 的事情,因为我正在考虑将它用于工程协调项目。
我将有一个模型类(例如“接口”),在树中具有模型的外键(例如“位置”)。
我能否通过它们所指的位置的深度来过滤接口?深度是父母的数量。
我还不知道如何组织我的数据,这就是我问的原因。我正在考虑使用 django-mptt(与部署时循环创建的模型相反,每个模型对应于一个树级别),但我害怕它会在某个时候阻止我并迫使我审查我的整个项目。
我想知道关于 django-mptt 的事情,因为我正在考虑将它用于工程协调项目。
我将有一个模型类(例如“接口”),在树中具有模型的外键(例如“位置”)。
我能否通过它们所指的位置的深度来过滤接口?深度是父母的数量。
我还不知道如何组织我的数据,这就是我问的原因。我正在考虑使用 django-mptt(与部署时循环创建的模型相反,每个模型对应于一个树级别),但我害怕它会在某个时候阻止我并迫使我审查我的整个项目。
终于找到了我的答案:django-mptt 开发文档
级别 节点在树中所处的级别(或“深度”)。
根节点是 0 级,它们的直接子节点是 1 级,它们的直接子节点是 2 级,依此类推......
为方便起见,该字段纯粹是非规范化。它避免了检查树结构以确定特定节点的级别的需要,并使需要考虑深度的查询更容易使用 Django 的 ORM 实现。例如,限制为整个树或任何子树检索的节点的级别数:
# Retrieve root nodes and their immediate children only
SomeModel.tree.filter(level__lte=1)