Is Django CMS good

Django CMS: The flexible Python system

Django CMS is probably the best-known content management system based on Python. And as the name suggests, Django CMS is based on the standard Django web framework. The great popularity of the CMS can be explained using the banal example of the author's manual: where other CMS write entire manuals, the Django tutorial has just eight pages. Getting started for developers is also not much more difficult. Coupled with the enormous flexibility and growing popularity of Python, Django CMS should find many more friends.

Django CMS is developed by the Swiss cloud provider Divio AG and has been freely available under an open source license (BSD) since 2007. Divio is also one of the major cloud hosts for Python, Django and Django CMS, but Django CMS can also be used without any problems on any other hosting provider, as long as it supports Python as a programming language.

#Django CMS for authors

Django CMS has a very refreshing authoring concept: the pages of a website are more or less completely assembled in the front end. If necessary, an admin area can be displayed as an overlay via the main navigation, otherwise the author does not come into contact with the otherwise usual administration and authoring interface. This makes Django CMS one of the few systems that prioritize the content work of the authors and relegate the administrative interface to the second row.

With Django CMS, a page consists of different content blocks and is created in a kind of WYSIWYG mode based on the Lego principle. Content blocks can be newly created in the left sidebar and edited and moved both in the sidebar and directly in the content area. The edit mode appears in a popup when you double-click on a content block.

Each content type is its own plugin in the background. This makes it very easy to add new content types. By default, Django-CMS provides various standard types such as texts, images, files, folders, links, HTML snippets, Google Maps, videos and columns. Even with these few types of content, the requirements of most standard websites should be covered. If a content type is missing, the authoring system can be expanded according to the Lego principle.

Similar concepts are also known from other systems, for example from the Enterprise Java CMS Adobe AEM or from the more recent PHP system Sulu. With Django, however, the very successful author guidance is astonishing: Due to the modularity, the contents of a page are broken up into logical units even with Django CMS. Due to the very direct, simple and self-explanatory implementation, the writing process is hardly interrupted or impaired.

Especially when many different types of content are required, Django CMS can score points over systems with a central editor: While with a central editor, the authoring work becomes more abstract and complex with each separate additional function, since the additional content has to be edited separately, the degree of abstraction and the complexity of Django CMS is always the same, as the new content types are seamlessly integrated into the basic modular principle. That makes Django one of the most author-friendly systems.

#Django CMS for developers

Getting started with Django CMS is also comparatively easy for developers. It starts with the installation process. The command line is used for the installation instead of a web-based wizard. But there it is done with five short commands after installing a current Python version:

After starting the server you can visit the new Django website at and log in with:

The manual installation of Django-CMS is explained in more detail in an older manual for Django CMS. Divio himself describes the installation of Django CMS in the Divio cloud in its 60-minute introductory tutorial. For this, however, numerous auxiliary programs such as Docker are installed, which do not run on all systems.

That too Templating Frontend developers are unlikely to face major hurdles because Django CMS works with the Django Template Language (DTL), the syntax of which is similar to other common template languages ​​such as Twig, Jinia or Smarty. A typical snippet for an article list looks like this:

Anyone who has already worked with a template language can briefly skim through the DTL documentation and then build their templates for Django CMS relatively intuitively.

In the Addon development on the other hand, you go deeper into the Python world. With add-ons, for example, new content types can be created that can be used by the editors in the admin interface. Anyone who does not come from the Python world should have a small learning curve in front of them. A shortened excerpt from Divo's plug-in tutorial shows, however, that the development with Python and especially with Django-CMS is very clean and clear.

For the example add-on, a model is first created:

The actual add-on is then created with the model and registered in the Django CMS:

Finally, all that remains is to create the necessary template () with the template language DTL. Even without prior knowledge of Python, the logic looks quite simple and the syntax is very tidy. If you want to go deeper into the matter, you should go through the very simply written Academy of Divio.

#Django CMS for non-developers

Django CMS offers a very user-friendly authoring interface, but is primarily aimed at developers. Accordingly, there are a lot of addons in the marketplace, but no themes. Themes are always created individually by developers. Django CMS is therefore not a self-service system comparable to WordPress. For code newbies, Django should offer a very good introduction to the Python world and is therefore definitely worth a try.

#Costs

Django is open source and is under a BSD license, so it can be used free of charge. Costs arise from the development of individual themes and extensions. Compared to PHP and JavaScript, Python developers are likely to be less common. Beyond JavaScript and PHP, however, Python, together with Java, is one of the most popular programming languages ​​on the web, so that freelancers or service providers should still be easy to find.

#Areas of application for Django CMS

Django CMS sees itself as an enterprise CMS and is used by large companies such as National Geographic, NASA or L'Oreal Men Expert. However, this is more a sign of the enormous flexibility of Django CMS than an argument against using it for simpler requirements. On the contrary: The extremely simple and self-explanatory authoring concept, the lean basis during the initial installation and the simple development make Django CMS a good candidate for any type of website, also and especially for medium-sized companies or even for SMEs.