Admin

API

class treebeard.admin.TreeAdmin(model, admin_site)

Bases: ModelAdmin

Django Admin class for treebeard.

Example:

from django.contrib import admin
from treebeard.admin import TreeAdmin
from treebeard.forms import movenodeform_factory
from myproject.models import MyNode

class MyAdmin(TreeAdmin):
    form = movenodeform_factory(MyNode)

admin.site.register(MyNode, MyAdmin)
treebeard.admin.admin_factory(form_class)

Dynamically build a TreeAdmin subclass for the given form class.

Parameters:

form_class

Returns:

A TreeAdmin subclass.

Interface

The features of the admin interface will depend on the tree type.

Advanced Interface

Materialized Path and Nested Sets trees have an AJAX interface based on FeinCMS, that includes features like drag&drop and an attractive interface.

_images/treebeard-admin-advanced.png

Basic Interface

Adjacency List trees have a basic admin interface.

_images/treebeard-admin-basic.png

Model Detail Pages

If a model’s field values are modified, then it is necessary to add the fields ‘_position’ and ‘_ref_node_id’. Otherwise, it is not possible to create instances of the model.

Example:

class MyAdmin(TreeAdmin):
    list_display = ('title', 'body', 'is_edited', 'timestamp', '_position', '_ref_node_id',)
    form = movenodeform_factory(MyNode)

admin.site.register(MyNode, MyAdmin)