Usage#
Lets assume that our model looks like this.
models.py#
from django import models
from django_ltree import TreeModel
class CustomTree(TreeModel):
text = models.TextField()
Create a child without parent#
views.py#
from .models import CustomTree
CustomTree.objects.create_child(text='Hello world')
The following code with create a child with no parent (ie:roots of a tree)
Create a child with parent#
Let’s assume we want to add a child to the CustomTree object of pk=1
views.py#
from .models import CustomTree
# This must return a single object
parent: CustomTree = CustomTree.objects.get(pk=1)
CustomTree.objects.create_child(text='Hello world', parent=parent)
Get all the roots of the model#
A root means the the object that childrens anchor to.
views.py#
from .models import CustomTree
roots: list[CustomTree] = CustomTree.objects.roots()
Get all the childrens of a object#
To get the childrens of a object, we can first get the object then call the QuerySet specific children function.
views.py#
from .models import CustomTree
instance = CustomTree.objects.get(pk=1)
childrens: list[CustomTree] = instance.children()
Get the length of childrens of a object#
django specific database functions still work when we call
the filter method.
Lets assume we want to get the childrens of CustomTree
object whose pk is 1.
views.py#
from .models import CustomTree
instance = CustomTree.objects.get(pk=1)
childrens: int = instance.children().count()