python3-django-tree-queries

Adjacency-list trees for Django (Python3 version)
  https://github.com/feincms/django-tree-queries
  0
  no reviews



Query Django model trees using adjacency lists and recursive common table expressions. Supports PostgreSQL, sqlite3 and MariaDB and MySQL.

Features and limitations: * Supports only integer and UUID primary keys (for now). * Allows specifying ordering among siblings. * Uses the correct definition of depth, where root nodes have a depth of zero. * The parent foreign key must be named "parent" at the moment. * The fields added by the common table expression always are tree_depth, tree_path and tree_ordering. The names cannot be changed. tree_depth is an integer, tree_path an array of primary keys and tree_ordering an array of values used for ordering nodes within their siblings. * Besides adding the fields mentioned above the package only adds queryset methods for ordering siblings and filtering ancestors and descendants. * Little code, and relatively simple when compared to other tree management solutions for Django. No redundant values so the only way to end up with corrupt data is by introducing a loop in the tree structure (making it a graph). The TreeNode abstract model class has some protection against this. * Supports only trees with max. 50 levels on MySQL/MariaDB, since those databases do not support arrays and require a maximum length for the tree_path and tree_ordering upfront.

This package contains the Python 3 version of the library.