6.0 released 3 December 2025, latest 6.0.8.
Django 6.0 is currently supported. Active support is scheduled to end on 4 August 2026. It reaches end of life on 30 April 2027.
What changed
Django 6.0 raises the minimum Python version to Python 3.12. It adds a built-in tasks framework, with APIs for defining and enqueueing work and pluggable task backends. It also adds first-party Content Security Policy support, including policy configuration and nonce support, and template partials for defining and rendering named portions of a template. As with every feature release, it removes APIs and behaviors that were previously deprecated, so code that only emitted deprecation warnings on an earlier line can fail after the upgrade.
What staying costs
Django 6.0 remains supported, so remaining on it does not create an immediate framework-support gap. The practical risk is operational drift: applications must stay current on its maintenance releases to receive fixes, and teams that defer the next feature-line upgrade accumulate more removed APIs, dependency constraints, and compatibility work. The Python 3.12 baseline can also make this line unsuitable for environments that cannot yet update their interpreter, while projects that do adopt its new task or CSP facilities need to validate their production backend and browser-policy behavior rather than treating those features as drop-in replacements for existing infrastructure.
What to do
Upgrade first in an environment running Python 3.12 or newer, following Django’s supported incremental upgrade path if the application is on an older release line. Read the 6.0 release notes and deprecation timeline, run the full test suite with deprecation warnings enabled before upgrading, and search dependencies and local code for removed or deprecated Django APIs. Test database migrations, authentication and authorization flows, template rendering, middleware ordering, and deployment configuration in a production-like environment. If adopting tasks, select and test a backend, failure handling, retries, idempotency, and observability. If enabling CSP, begin with a report-only policy where appropriate, inventory required script, style, and third-party origins, and verify nonce use in every rendered response before enforcing the policy.
We can tell you what moving off Django 6.0 involves.
What it takes to move off Django 6.0 depends on what you built on it — the version you are on, how much depends on it, and how much of the work is mechanical. Leave your email with this version and we can tell you what that looks like for you.
Not sure yet? Get my plan
