This is a generic taxonomy app that I wrote for bash-shell.net. It allows you to create any number of ways of classifying objects, called TaxonomyGroups, which are lists of categories. You can then attach these to any model in any application as needed with no need to change the attributes or underlying database structure of the model.
This is accomplished using Django's ContentTypes framework to create generic relations. Since generic relations add some extra, somewhat annoying complexity there is an abstract base class, TaxonomyMember, which provides a couple of simple helper functions and get_members() and add_members() functions on the TaxonomyItem (a specific category within a TaxonomyGroup) class.
There is also a get_members template tag which returns a list of all of the objects which have been assigned a given TaxonomyItem and TaxonomyGroup.
I've separated the app out from my main CMS code (although it does need removed from that repository still). A gitweb link is below and I'll be adding this to github in the next few days.
- Nothing to see here, move along.