Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Simple topic trees (hierarchies) for Django.
Latest commit f3565bb @malcolmt Future-proof test methods: failUnless*() --> assert*().
In Python 2.7 and Python 3.x, the unittest2 module deprecates the
failUnless* method names. So this is a preemptive change to use the
assert* versions of the names, even thought I find them less naturally
Failed to load latest commit information.
acacia Future-proof test methods: failUnless*() --> assert*().
docs Added the get_or_create_by_full_name() method.
testing Updated test settings file to match Django 1.2. format.
README.rst Edits and markup fixes in the README file.
TODO Updated TODO list in light of recent progress.


Acacia — Simple Topic Trees For Django

Acacia is a small Django application that provides hierarchical topic naming. Other applications can use the topic trees to categorise and retrieve objects using human-readable names.

Full documentation is available in the docs/ directory of the source. It is marked up using the Sphinx documentation system — restructured text plus some extras for inter-file connections. Running make html in the docs directory is the simplest way to create the HTML version.


This code should run on Python 2.4 or later and Django 1.2 [*] or later.

The underlying tree implementation is provided by django-mptt. Any project using django-acacia, also needs to include django-mptt.

[*]To check: is there a strict 1.2 requirement, or does it also work with Django 1.1?


Acacia can be tested with the standard Django testing framework. That is, any run of test (or test) in a project that has Acacia installed will execute the tests.

In addition, to make testing in isolation easier, the testing/ script is provided. This removes the need to install Acacia into a fake Django project merely to run the tests during development work. Execute the script from anywhere and it will run through all of Acacia’s unittests in isolation.

Something went wrong with that request. Please try again.