django-cms: this is not a review

I am trying different blog and CMS solutions that are Django native. The first one that I came into was django-cms. The following is NOT a review. I only played with it a little, this is more like a ‘done the tutorial’ and ‘ first impressions’ type of post.

What is django-cms

Its an open source project for a CMS implementation on Django.

It seems pretty complete, used by many, and also they have a (I assume) a paid service for a cloud hosted version. Which is good, because that means that it is actively worked on.

So, first impressions…

From the get go, looking at their homepage, all the logos and sites that use django-cms, the project seemed like the PRO version of all the other blog apps and CMS projects that I found.

Just check it:

I immediately went to the docs, and started their tutorial:

So. Documentation-wise and from the look of their site and everything it looks like this project has an active community, and it is currently maintained which is really, but really, a pro (other projects had their latest commits 3 to 4 years ago)

The Tutorial

The tutorial walks you on how to install and setup django-cms, it seems that this is a monster kind of app. You can do everything with it, it is very, very, flexible. And of course that gives you also complexity.

You can, as expected, customize the look’n feel of every page, it works as any other Django app, so you just do what you already know while editing .html template files.

Conceptually it is a CMS, so you can make a blog, where the C on CMS are Posts, but you can also do other type of content. A Content type is called Plugin in django-cms, and you can add whatever type of content you want.

You can interactively add/remove pages to the CMS, and modify the pages structure (layout) and its content.

There are also a lot of plugins and apps already implemented for django-cms so for instance you don’t need to implement a Blog, there are already a News blog app for django-cms (In the tutorial it shows one)


My first impressions as I was saying is that this project is a beast. If I needed to do something CMS-like I know that django-cms can support it. What I don’t know if it is too much complex for my taste.

In the documentation they show how to add different types of content, and how to customize its views but something I didn’t find was how to modify the login. Say that instead of having local users I want to use OAuth and login with any OAuth provider (Twitter, FB, … etc)

ps: Well… django-cms uses theDjango native auth system so in theory it should be possible to use something made for plain Django, not just django-cms. I also found this post: here.