Aug 2010


Trying out Django-cms

I tried installing django-cms, an open-source project from Switzerland's company Divio. It is a content management system based on the web framework Django and is written in Python.

Among the interesting features of DjangoCms (besides the fact that it is based on django, which I happen to have fun with in most of my programming work):

  • Flexible Plugin Architecture. Build flexible pages with a wide range of plugins.
  • SEO Optimization. The structure of the pages is optimized for SEO.

  • Editorial workflow. Workflows for publishing and approval.

  • Permission Management. Set specific rights to different users.
  • Versioning. Each modification of the page will be saved. You can restore any state you wish.
  • Multisites. Administrate multiple websites over the same admin interface.
  • Multilanguage. Support for different languages (i.e. arabic, chinese or russian)
  • Applications (Apps). Add apps to different pages of the CMS.
  • Media Asset Manager (MAM). MAM allows you to manage all kind of assets (pictures, PDFs, videos and other documents).

It's quite interesting to check out the other alternatives too, if you want a django-based CMS. This comparison webpage has all the info you need.


Getting to the meaty part: here are the steps I followed during installation:

1. went to gitHub and tried to install the latest version available (2.1.0.beta2). Tried to run the example app within that package, but it was throwing too many errors so I decided to go for the 2.0 stable release (

2. This version worked fine, I just had to set the MEDIA directory giving using the full path on my machine, and remove all references to 'South' and 'Reversion' django apps (in 'installed apps') cause I don't use them.

3. fill out the DB specs as needed ('DATABASE_ENGINE = 'sqlite3'), update the DB using 'python syncdb', and then start the server using 'python runserver'

4. That's it. Go to /admin, set up some pages, add content and see the result.

Screen shot 2010-08-03 at 14.19.23.png

The templates that come by default are good at giving you an idea of how the information is structured and retrieve, but they are a bit messy in my opinion. So I created my own template and added it to the default ones (all the info on how to do this on the official docs)

Screen shot 2010-08-03 at 14.22.04.png

The end result: not a masterwork, but a decent starting point for certain!

Screen shot 2010-08-03 at 14.26.29.png


Other places online where you might find useful django-cms tips:

- django-cms mailing list on google groups - another mailing list on

That's it for now. I like very much the plugin architecture (plugins or extensions can be downloaded here), maybe I'll be posting some more about that in the future...


Cite this blog post:

Michele Pasin. Trying out Django-cms. Blog post on Published on Aug. 3, 2010.

Comments via Github:

See also: