# Admin

## API

class treebeard.admin.TreeAdmin(model, admin_site)

  Bases: `django.contrib.admin.options.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.

### Basic Interface

Adjacency List trees have a basic admin interface.

### 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)