About this document
This document provides an overview of what Modified Preorder Tree Traversal (MPTT) and Django MPTT are.
Contents
MPTT is a technique for storing hierarchical data in a database in a manner which makes tree retrieval operations such as fetching complete trees, item ancestors and item descendants very efficient.
The trade-off for this efficiency is that performing inserts and moving items around the tree is 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:
In particular, these articles should help you understand the two most important fields in MPTT - the left and right “edge indicators”. Other fields involved in Django MPTT’s implementation of the technique are discusssed in the technical details documentation.
Django MPTT is a reusable/standalone Django application which aims to make it easy for you to use Modified Preorder Tree Traversal with your own Django models in your own applications.
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.