django CMS 5.1 is here: easier setup, flexible deployments, and a fresh editing experience
This release reduces friction across the whole project lifecycle: creating a new project, adding django CMS to an existing Django application, configuring larger deployments, controlling which plugins editors can use, and working with the CMS every day.
Today, we’re releasing django CMS 5.1.
Start a complete project with one command
The improved djangocms command can now create a complete, customized, ready-to-run project:
djangocms myproject
You can choose between traditional, headless, and hybrid modes and optionally include components such as versioning, moderation, aliases, and stories.
Run the command interactively or provide all the choices as command-line options:
djangocms myproject --mode headless --no-versioning --stories
The command installs the required packages, runs migrations, creates a superuser, and checks the resulting installation.
Check out the interactive mode by just running djangocms.
Add django CMS to an existing Django project
django CMS 5.1 also makes it much easier to introduce the CMS into an existing project.
From your project directory, run:
djangocms .
The command proposes the required changes to your Django configuration, templates, URL patterns, and dependencies.
Because these changes should always be reviewed, you can preview them first:
djangocms . --dry-run
This prints a unified diff without changing files or installing packages. The operation is also idempotent, so running it again will not duplicate configuration.
A modernized editing interface
The most visible change in django CMS 5.1 is its refreshed interface.
The new design brings:
- Improved contrast and visual hierarchy
- More consistent spacing and iconography
- A more cohesive experience across frontend editing and Django administration
The familiar editing workflow remains, but the interface is cleaner and more consistent.
Projects that need additional time to adapt custom styling can continue using the previous theme by setting data-cms-theme="4" on the document’s <html> element.
More flexible multi-site deployments
Projects can now run multiple sites using one settings configuration.
When SITE_ID is omitted, django CMS can determine the current site from the request host. More complex projects can provide their own site-selection middleware by setting request.site.
You can also control which sites expose the Django administration interface while continuing to manage and preview content across sites.
More precise plugin configuration
django CMS 5.1 provides finer control over where plugins are available.
Plugins can be restricted according to:
- The content model being edited
- The placeholder slot
- Their permitted parent or child plugin types
Parent and child restrictions support glob patterns, and automatic child restrictions make larger plugin libraries easier to maintain.
These controls help developers present editors with a focused selection of plugins instead of every registered plugin in every context.
Security, reliability, and performance
The release also includes authorization hardening, improved Content Security Policy compatibility, automatic repair of inconsistent plugin positions, safer page-tree operations, and fixes for deadlocks and unnecessary database queries.
Compatibility
django CMS 5.1 supports:
- Django 5.2, 6.0, and 6.1
- Python 3.10, 3.11, 3.12, 3.13, and 3.14
Django 4.2, 5.0, and 5.1 are no longer supported.
Upgrading an existing project
Before upgrading, back up your database and uploaded media. Review the complete release notes, particularly the backward-incompatible changes and removed functionality.
Install the new release and a supported Django version:
python -m pip install --upgrade "django-cms==5.1.0" "Django>=5.2"
Then run:
python manage.py migrate
python manage.py collectstatic --noinput
python manage.py cms check
Test custom plugins, apphooks, permissions, templates, and frontend editing in a staging environment before deploying to production.
Projects using custom django CMS migrations should also review the new squashed initial migration.
Try it and share your experience
Read the complete django CMS 5.1 release notes for detailed upgrade information, API changes, deprecations, and bug fixes.
Join us on Discord to tell us what you are building, share your upgrade experience, or ask the community for help.
Thank you to everyone who contributed code, documentation, testing, reviews, issue reports, and feedback. django CMS 5.1 would not be possible without you.