跳转到主要内容

为Django模型实现修改前序树遍历并提供Model实例树操作的实用工具。

项目描述

该项目目前未维护

django-mptt的替代方案包括

  • django-treebeard 包含了一个MPTT实现(称为嵌套集),但其维护状态尚不明确。

  • 也许您不需要MPTT,尤其是当使用较新的数据库时。请参见django-tree-queries(使用递归公共表表达式(CTE)的实现)。请参阅公告博客文章

django-mptt

为Django模型实现修改前序树遍历并提供Model实例树操作的实用工具。

Build Status

项目主页: https://github.com/django-mptt/django-mptt/

文档: https://django-mptt.readthedocs.io/

讨论组: https://groups.google.com/forum/#!forum/django-mptt-dev

什么是修改前序树遍历?

多路径树(MPTT)是一种在数据库中存储层次数据的技巧。其目标是使检索操作非常高效。

这种效率的代价是,执行插入和移动树中的项更加复杂,因为需要做额外的工作来保持树结构始终处于良好状态。

以下是一些关于MPTT的文章,以激发您的兴趣并提供有关该技术如何工作的详细信息

什么是 django-mptt

django-mptt 是一个可重用的 Django 应用,旨在让您轻松地将 MPTT 与自己的 Django 模型一起使用。

它负责将数据库表作为树结构进行管理细节,并提供用于处理模型实例树的工具。

需求

  • 支持的 Python 版本:[Python 版本链接](https://devguide.pythonlang.cn/versions/#supported-versions)

  • 支持的 Django 版本:[Django 版本链接](https://django.ac.cn/download/#supported-versions)

功能概述

  • 简单注册模型 - 将自动添加用于树结构的所需字段。

  • 当您创建或删除模型实例,或更改实例的父项时,树结构会自动更新。

  • 树中的每个级别都会自动按您选择的字段(或字段集)排序。

  • 为每个注册的模型添加了新的模型方法,用于

    • 在树中更改位置

    • 检索祖先、兄弟、后代

    • 计算后代数量

    • 其他与树相关的操作

  • 为所有注册的模型添加了 TreeManager 管理器。这提供了以下方法

    • 在树中移动节点或将其移动到不同的树中

    • 在树中的任何位置插入节点

    • 重建树的 MPTT 字段(当您在 Django 之外进行批量更新时很有用)

  • 树模型表单字段

  • 树模型实用函数

  • 渲染树的模板标签和过滤器

  • 管理类,用于在 Django 的管理界面中可视化和管理树。

项目详情


下载文件

下载适合您平台的应用程序文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

django_mptt-0.16.0.tar.gz (69.9 kB 查看哈希值)

上传时间 源代码

构建版本

django_mptt-0.16.0-py3-none-any.whl (115.9 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面