Skip to main content

A way to handle one or more hierarchical category trees in django.

Project description

Django Categories grew out of our need to provide a basic hierarchical taxonomy management system that multiple applications could use independently or in concert.

As a news site, our stories, photos, and other content get divided into “sections” and we wanted all the apps to use the same set of sections. As our needs grew, the Django Categories grew in the functionality it gave to category handling within web pages.

Updated in 0.8.8

The editor app was placed inside the categories app, categories.editor, to avoid any name clashes.

Upgrading

A setting change is all that is needed:

INSTALLED_APPS = (
    'categories',
    'categories.editor',
)

New in 0.8

Added an active field

As an alternative to deleting categories, you can make them inactive.

Also added a manager method active() to query only the active categories and added Admin Actions to activate or deactivate an item.

Improved import

Previously the import saved items in the reverse order to the imported file. Now them import in order.

New in 0.7

Added South migrations

All the previous SQL scripts have been converted to South migrations.

Can add category fields via management command (and South)

The new ability to setup category relationships in settings.py works fine if you are starting from scratch, but not if you want to add it after you have set up the database. Now there is a management command to make sure all the correct fields and tables are created.

Added an alternate_url field

This allows the specification of a URL that is not derived from the category hierarchy.

New JAVASCRIPT_URL setting

This allows some customization of the genericcollections.js file.

New get_latest_objects_by_category template tag

This will do pretty much what it says.

New in 0.6

Class-based views

Works great with Django 1.3 or django-cbv

New Settings infrastructure

To be more like the Django project, we are migrating from individual CATEGORIES_* settings to a dictionary named CATEGORIES_SETTINGS. Use of the previous settings will still work but will generate a DeprecationError.

The tree’s initially expanded state is now configurable

EDITOR_TREE_INITIAL_STATE allows a collapsed or expanded value. The default is collapsed.

Optional Thumbnail field

Have a thumbnail for each category!

“Categorize” models in settings

Now you don’t have to modify the model to add a Category relationship. Use the new settings to “wire” categories to different models.

Features of the project

Multiple trees, or a single tree

You can treat all the records as a single tree, shared by all the applications. You can also treat each of the top level records as individual trees, for different apps or uses.

Easy handling of hierarchical data

We use Django MPTT to manage the data efficiently and provide the extra access functions.

Easy importation of data

Import a tree or trees of space- or tab-indented data with a Django management command.

Metadata for better SEO on web pages

Include all the metadata you want for easy inclusion on web pages.

Link uncategorized objects to a category

Attach any number of objects to a category, even if the objects themselves aren’t categorized.

Hierarchical Admin

Shows the data in typical tree form with disclosure triangles

Template Helpers

Easy ways for displaying the tree data in templates:

Show one level of a tree

All root categories or just children of a specified category

Show multiple levels

Ancestors of category, category and all children of category or a category and its children

Contributors

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-categories-0.8.9.tar.gz (280.6 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page