Content: Blog


Version 3.3 of django CMS Released!

Martin Koistinen

May 27, 2016


The new django CMS 3.3 offers an enhanced user experience, improved stability and faster performance throughout, making it a strongly recommended upgrade for all projects.

One of the first things you'll notice is the speed improvements we've been able to achieve. django CMS 3.3 is significantly faster when editing or publishing complex content: both content managers and site visitors will benefit.

Stability & performance

A lot of effort went into improving performance in this release. In version 3.1 we started the process to rewrite huge chunks of the codebase dealing with pages and plugins. This work continued in 3.2 and we're really starting to see the benefits of this change in 3.3. We've significantly reduced the number of queries required for many of the page and plugin operations; the result is a a noticeable boost in performance.

django CMS 3.2.5 on the left, new django CMS 3.3.0 on the right (test performed on Aldryn Cloud)

During this refactoring effort, we've also been able to eliminate the root cause of "ghost plugins". In previous CMS versions, these would occur when a content manager started the process to create a new plugin, but then abandoned the process, leaving a "ghost plugin" in the system. By themselves, these weren't harmful or even noticeable, but as they accumulated, the could lead to some stability issues. These anomalies should now be a thing of the past.

Another area that was significantly enhanced is the internal caching of placeholders. This was rewritten from scratch to decouple the placeholder cache from the internal page cache, allowing some content to remain cached even if other content needed to be invalidated. The result is that most of the time, less content needs to be rendered, and pages load faster. For example, if there are 100 plugins on a page spread evenly over 5 placeholders and one of these plugins is modified by the content manager, only 20 plugins need to be re-rendered (those belonging to the same placeholder as the modified one). In previous versions of the CMS, all 100 plugins would need to be re-rendered. Perhaps more importantly though, the new caching infrastructure is smarter about the way it sets HTTP headers so that the cache can be better utilised by the CMS, caching middleware, down-stream caches and finally the end-users' browsers.

Finally, during its rewrite, new capabilities were added to the placeholder cache which allow plugins to independently declare their content expiration and even to declare their own HTTP Vary headers. These are new, advanced features which, when used correctly, can enable further performance gains both to content managers and end-users alike.

The page tree

The django CMS page tree has been completely refreshed. You'll immediately notice it looks more in-family with the Structure Board. The heirarchical display of pages is clearer and makes better use of the available space. A number of infrequently used buttons have been moved into the Action menu ( ), making more space available for longer page titles and more translations.

Speaking of translations, the column-headers for the various languages acts as a language-context selector for page operations. Actions will now operate on the selected language. So, in the example below clicking on the Settings button ( )  will display the page settings dialog for the EN language.

Rollover the image below to see and compare the new version 3.3 page tree against version 3.2.5.​

The toolbar

Next, you may notice that the menus are more streamlined. As of 3.3 the menus have been re-arranged to make better sense. For example, the Page > Advanced settings... is directly beneath the basic Page settings..., the History... menu is now part of the Page menu. This leaves more space in the menubar for the toolbar menus of custom addons. Shown below, we see the News & Blog (from Aldryn NewsBlog) toolbar menu shown. Notice also that this menu is before the language menu, which is now always last.

Rollover the image below to see and compare the new version 3.3 toolbar against version 3.2.5.​

Once you start using the new CMS, you'll notice many other changes that improve the user-experience for content managers, These changes will feel natural and intuitive so you may forget that things were ever different.

A strongly-recommended upgrade

There are many other improvements in django CMS version 3.3. The stability improvements alone make this a strongly recommended upgrade for all projects. Please see the release notes for further information about the remaining improvements as well as any upgrade notes, deprecations and changes required in your project to upgrade.


Try a free demo

Take the new django CMS 3.3 for a spin:

Start demo


New to django CMS?

The latest tutorial is the quickest and easiest way to get started with django CMS and you don't have to have any skills in Python/Django to get your website up and running:

Follow the tutorial


Get help from the pros

Book your spot to learn how to build a website with a blog, using a free Bootstrap-based theme with django CMS on the Aldryn Cloud platform:

Join a guided tour


blog comments powered by Disqus

Do you want to test django CMS?

Try django CMS