django-ltree icon indicating copy to clipboard operation
django-ltree copied to clipboard

An ltree extension implementation to support hierarchical tree-like data using the native Postgres extension ltree in django models

django-ltree

A tree extension implementation to support hierarchical tree-like data in Django models, using the native Postgres extension ltree.

Postgresql has already a optimized and very useful tree implementation for data. The extension is ltree

This fork contains a backport to Django 1.11 and Python 3.6.

Test

Links

  • Pypi https://pypi.org/project/django-ltree/
  • Source code https://github.com/mariocesar/django-ltree
  • Bugs https://github.com/mariocesar/django-ltree/issues
  • Contribute https://github.com/mariocesar/django-ltree/pulls
  • Documentation TODO

Install

pip install django-ltree

Then add django_ltree to INSTALLED_APPS in your Django project settings.

And make sure to run django_ltree migrations before you added the PathField

python manage.py migrate django_ltree

django_ltree migrations will install the ltree extension if not exist.

You can alternatively specify the django_ltree dependency in the migrations of your applications that requires PathField, and run migrations smoothly.

class Migration(migrations.Migration):
    dependencies = [
            ('django_ltree', '__latest__'),
    ]

Requires

  • Django 1.11 or superior
  • Python 2

Testing

Make sure you have Postgres installed. Then simply run tox in the root directory of the project.