python3-django-tree-queries

Adjacency-list trees for Django (Python3 version)

Description

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.

Upload more screenshots

Please help extend the collection of screenshots. Just make a screenshot and upload it here. You don't need to register or anything.

Upload a screenshot

Hint: upload an image here from your clipboard with Ctrl-V


Homepage

https://github.com/feincms/django-tree-queries


Install this software package

If the package is available for the distribution you are currently using on your computer then install the software by clicking on…

Install python3-django-tree-queries