4.1.0 release notes#

December 20, 2022


Upgrading from previous versions

django CMS 4.1.0 is the first community release of django CMS 4. Django CMS 4 introduces changes that require action if you are upgrading from a 3.x version. Please read the step-by-step guide to the process of upgrading from 3.5+ to 4 here: 4.0.0 release notes

Welcome to django CMS 4.1!

These release notes cover the new features, as well as some backwards incompatible changes you’ll want to be aware of when upgrading from django CMS 4.0. If you are upgrading from django CMS 3.11 or earlier please urgently read the release notes of django CMS 4.0.

Django and Python compatibility#

django CMS supports Django 3.2 to 5.0. We highly recommend and only support the latest release of each series.

It supports Python 3.8, 3.9, 3.10, and 3.11. As for Django we highly recommend and only support the latest release of each series.

What’s new in 4.1#

Status indicators in page tree#

  • Status indicators are shown in the page tree. For django CMS core only two states are available: public and empty.

  • Django CMS core provides hooks to allow other packages to patch the status indicators, e.g., djangocms-versioning.

  • Djangocms-versioning will add more functionality to the indicators (e.g., publish from page tree).

Bug Fixes#

  • In rare cases moving plugins from one placeholder to another could result in a server error and an inconsistent plugin tree.

  • Empty page contents (e.g., due to a missing translation of a page) will now render correctly in the page tree.

  • Adding a page will trigger the form in the language viewd not in the browser language

  • The “Empty all” menus for placeholders now works.

Backward incompatible changes in 4.1#


TitleExtension in cms.extensions.models has been renamed to PageContentExtension to keep a consistent language in the page models.

Any packages using TitleExtension will need to adapt the name change in their code base.

In ExtensionToolbar the method get_title_extension_admin(language=None) has been deprecated. It is recommended to switch to the new get_page_content_extension_admin(page_content=None).

Monkey patching#

This is a purely internal change: django CMS v4.1 does not support monkey patching as for djangocms-versioning before version 2.0. Please only use djangocms-versioning >= 2.0


  • The Django setting SEND_BROKEN_LINK_EMAILS (removed from Django since version 1.8) was used as a signal to send an email to the site managers if page_url could not reverse the url name. Since this version the outdated setting is ignored. If managers want to receive mails add django.middleware.common.BrokenLinkEmailsMiddleware to the project’s settings.MIDDLEWARE.

  • cms.api.create_title has been renamed to create_page_content. A compatibility shim remains and issues a deprecation warning.

  • cms.models.pluginmodel.CMSPlugin.copy_plugin was removed.