Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/django-mptt/django-mptt
Utilities for implementing a modified pre-order traversal tree in django.
https://github.com/django-mptt/django-mptt
Last synced: 2 days ago
JSON representation
Utilities for implementing a modified pre-order traversal tree in django.
- Host: GitHub
- URL: https://github.com/django-mptt/django-mptt
- Owner: django-mptt
- License: other
- Created: 2010-08-31T19:12:55.000Z (over 14 years ago)
- Default Branch: main
- Last Pushed: 2024-07-01T18:17:37.000Z (8 months ago)
- Last Synced: 2025-02-14T03:53:15.876Z (7 days ago)
- Language: Python
- Homepage: https://django-mptt.readthedocs.io/
- Size: 2.04 MB
- Stars: 2,895
- Watchers: 68
- Forks: 469
- Open Issues: 117
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.rst
- License: LICENSE
Awesome Lists containing this project
- -awesome-django - django-mptt - Modified Preorder Tree Traversal; working with trees of Model instances. (Third-Party Packages / Models)
- awesome-django - django-mptt - Modified Preorder Tree Traversal; working with trees of Model instances. (Third-Party Packages / Models)
- best-of-web-python - GitHub - 21% open · ⏱️ 08.05.2024): (Django Utilities)
- best-django-resource - django-mptt - Provides utilities for creating tree-like structures in your database models. (Database and ORM)
- stars - django-mptt/django-mptt - Utilities for implementing a modified pre-order traversal tree in django. (Python)
- stars - django-mptt/django-mptt - Utilities for implementing a modified pre-order traversal tree in django. (Python)
README
==========================================
**This project is currently unmaintained**
==========================================You can find alternatives to django-mptt on
`Django Packages `__.
Maybe you do not need MPTT, especially when using newer databases. See
`django-tree-queries `_ for an
implementation using recursive Common Table Expressions (CTE). Here's its
`announcement blog post `__.===========
django-mptt
===========Utilities for implementing Modified Preorder Tree Traversal with your
Django Models and working with trees of Model instances... image:: https://secure.travis-ci.org/django-mptt/django-mptt.svg?branch=master
:alt: Build Status
:target: https://travis-ci.org/django-mptt/django-mpttProject home: https://github.com/django-mptt/django-mptt/
Documentation: https://django-mptt.readthedocs.io/
Discussion group: https://groups.google.com/forum/#!forum/django-mptt-dev
What is Modified Preorder Tree Traversal?
=========================================MPTT is a technique for storing hierarchical data in a database. The aim is to
make retrieval operations very efficient.The trade-off for this efficiency is that performing inserts and moving
items around the tree are more involved, as there's some extra work
required to keep the tree structure in a good state at all times.Here are a few articles about MPTT to whet your appetite and provide
details about how the technique itself works:* `Trees in SQL`_
* `Storing Hierarchical Data in a Database`_
* `Managing Hierarchical Data in MySQL`_.. _`Trees in SQL`: https://www.ibase.ru/files/articles/programming/dbmstrees/sqltrees.html
.. _`Storing Hierarchical Data in a Database`: https://www.sitepoint.com/hierarchical-data-database/
.. _`Managing Hierarchical Data in MySQL`: http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/What is ``django-mptt``?
========================``django-mptt`` is a reusable Django app that aims to make it easy for you
to use MPTT with your own Django models.It takes care of the details of managing a database table as a tree
structure and provides tools for working with trees of model instances.Requirements
------------* A supported version of Python: https://devguide.python.org/versions/#supported-versions
* A supported version of Django: https://www.djangoproject.com/download/#supported-versionsFeature overview
----------------* Simple registration of models - fields required for tree structure will be
added automatically.* The tree structure is automatically updated when you create or delete
model instances, or change an instance's parent.* Each level of the tree is automatically sorted by a field (or fields) of your
choice.* New model methods are added to each registered model for:
* changing position in the tree
* retrieving ancestors, siblings, descendants
* counting descendants
* other tree-related operations* A ``TreeManager`` manager is added to all registered models. This provides
methods to:* move nodes around a tree, or into a different tree
* insert a node anywhere in a tree
* rebuild the MPTT fields for the tree (useful when you do bulk updates
outside of Django)* `Form fields`_ for tree models.
* `Utility functions`_ for tree models.
* `Template tags and filters`_ for rendering trees.
* `Admin classes`_ for visualizing and modifying trees in Django's administration
interface... _`Form fields`: https://django-mptt.readthedocs.io/en/latest/forms.html
.. _`Utility functions`: https://django-mptt.readthedocs.io/en/latest/utilities.html
.. _`Template tags and filters`: https://django-mptt.readthedocs.io/en/latest/templates.html
.. _`Admin classes`: https://django-mptt.readthedocs.io/en/latest/admin.html