{"id":13415825,"url":"https://github.com/django-mptt/django-mptt","last_synced_at":"2025-05-14T07:07:43.233Z","repository":{"id":40268228,"uuid":"875626","full_name":"django-mptt/django-mptt","owner":"django-mptt","description":"Utilities for implementing a modified pre-order traversal tree in django.","archived":false,"fork":false,"pushed_at":"2025-04-18T16:29:54.000Z","size":2266,"stargazers_count":2916,"open_issues_count":117,"forks_count":469,"subscribers_count":66,"default_branch":"main","last_synced_at":"2025-05-07T06:38:33.271Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://django-mptt.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/django-mptt.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2010-08-31T19:12:55.000Z","updated_at":"2025-05-02T02:15:33.000Z","dependencies_parsed_at":"2023-09-27T13:51:39.155Z","dependency_job_id":"a041f153-ea64-4708-9ad8-de72e60f5669","html_url":"https://github.com/django-mptt/django-mptt","commit_stats":{"total_commits":975,"total_committers":159,"mean_commits":6.132075471698113,"dds":0.6328205128205129,"last_synced_commit":"7e890524d7d29b02db9654ad14dfebf29bb10807"},"previous_names":[],"tags_count":42,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/django-mptt%2Fdjango-mptt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/django-mptt%2Fdjango-mptt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/django-mptt%2Fdjango-mptt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/django-mptt%2Fdjango-mptt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/django-mptt","download_url":"https://codeload.github.com/django-mptt/django-mptt/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254092648,"owners_count":22013290,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T21:00:52.374Z","updated_at":"2025-05-14T07:07:43.180Z","avatar_url":"https://github.com/django-mptt.png","language":"Python","funding_links":[],"categories":["Third-Party Packages","Python","Django Utilities","Database and ORM"],"sub_categories":["Models"],"readme":"==========================================\n**This project is currently unmaintained**\n==========================================\n\nYou can find alternatives to django-mptt on\n`Django Packages \u003chttps://djangopackages.org/grids/g/trees-and-graphs/\u003e`__.\nMaybe you do not need MPTT, especially when using newer databases. See\n`django-tree-queries \u003chttps://github.com/matthiask/django-tree-queries\u003e`_ for an\nimplementation using recursive Common Table Expressions (CTE). Here's its\n`announcement blog post \u003chttps://406.ch/writing/django-tree-queries/\u003e`__.\n\n\n===========\ndjango-mptt\n===========\n\nUtilities for implementing Modified Preorder Tree Traversal with your\nDjango Models and working with trees of Model instances.\n\n.. image:: https://secure.travis-ci.org/django-mptt/django-mptt.svg?branch=master\n    :alt: Build Status\n    :target: https://travis-ci.org/django-mptt/django-mptt\n\nProject home: https://github.com/django-mptt/django-mptt/\n\nDocumentation: https://django-mptt.readthedocs.io/\n\nDiscussion group: https://groups.google.com/forum/#!forum/django-mptt-dev\n\nWhat is Modified Preorder Tree Traversal?\n=========================================\n\nMPTT is a technique for storing hierarchical data in a database. The aim is to\nmake retrieval operations very efficient.\n\nThe trade-off for this efficiency is that performing inserts and moving\nitems around the tree are more involved, as there's some extra work\nrequired to keep the tree structure in a good state at all times.\n\nHere are a few articles about MPTT to whet your appetite and provide\ndetails about how the technique itself works:\n\n* `Trees in SQL`_\n* `Storing Hierarchical Data in a Database`_\n* `Managing Hierarchical Data in MySQL`_\n\n.. _`Trees in SQL`: https://www.ibase.ru/files/articles/programming/dbmstrees/sqltrees.html\n.. _`Storing Hierarchical Data in a Database`: https://www.sitepoint.com/hierarchical-data-database/\n.. _`Managing Hierarchical Data in MySQL`: http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/\n\nWhat is ``django-mptt``?\n========================\n\n``django-mptt`` is a reusable Django app that aims to make it easy for you\nto use MPTT with your own Django models.\n\nIt takes care of the details of managing a database table as a tree\nstructure and provides tools for working with trees of model instances.\n\nRequirements\n------------\n\n* A supported version of Python: https://devguide.python.org/versions/#supported-versions\n* A supported version of Django: https://www.djangoproject.com/download/#supported-versions\n\nFeature overview\n----------------\n\n* Simple registration of models - fields required for tree structure will be\n  added automatically.\n\n* The tree structure is automatically updated when you create or delete\n  model instances, or change an instance's parent.\n\n* Each level of the tree is automatically sorted by a field (or fields) of your\n  choice.\n\n* New model methods are added to each registered model for:\n\n  * changing position in the tree\n  * retrieving ancestors, siblings, descendants\n  * counting descendants\n  * other tree-related operations\n\n* A ``TreeManager`` manager is added to all registered models. This provides\n  methods to:\n\n  * move nodes around a tree, or into a different tree\n  * insert a node anywhere in a tree\n  * rebuild the MPTT fields for the tree (useful when you do bulk updates\n    outside of Django)\n\n* `Form fields`_ for tree models.\n\n* `Utility functions`_ for tree models.\n\n* `Template tags and filters`_ for rendering trees.\n\n* `Admin classes`_ for visualizing and modifying trees in Django's administration\n  interface.\n\n.. _`Form fields`: https://django-mptt.readthedocs.io/en/latest/forms.html\n.. _`Utility functions`: https://django-mptt.readthedocs.io/en/latest/utilities.html\n.. _`Template tags and filters`: https://django-mptt.readthedocs.io/en/latest/templates.html\n.. _`Admin classes`: https://django-mptt.readthedocs.io/en/latest/admin.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjango-mptt%2Fdjango-mptt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdjango-mptt%2Fdjango-mptt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjango-mptt%2Fdjango-mptt/lists"}