Should I upgrade to Django 5.2 now?
Decide whether to stay on Django 5.2 after its mainstream support ended on December 3, 2025, with only security and data-loss fixes remaining, or upgrade to Django 6.0.
Blockers
- framework/django-5-2 — EOL 2025-12-03
- requires_version: framework/django-6-0 → runtime/python-3-12
- requires_version: framework/django-5-2 → runtime/python-3-14
- support dropped
- support dropped
Who this is for
- small-team
- enterprise
- compliance
Candidates
Stay on Django 5.2 LTS for extended support only
Django 5.2 is an LTS release and, as of 2026-04-03, its mainstream support already ended on December 3, 2025. The official download page lists 5.2.12 as the latest 5.2 release and says 5.2 LTS remains in extended support until April 2028, which means security fixes and data-loss fixes continue but regular bug-fix backports do not. Django 5.2 supports Python 3.10 through 3.14, and it is the last Django series that supports Python 3.10 and 3.11. Django is open source, so there is no framework license pricing change to account for as of 2026-04-03.
When to choose
Use this when stability matters more than new framework features, and your stack still depends on Python 3.10 or 3.11. It is the safer hold position if you want the longest official support runway without taking 6.0 migration risk yet.
Tradeoffs
You keep the longest support window and avoid immediate upgrade work, but you give up mainstream bug fixes and new-platform improvements available in 6.0.
Cautions
As of 2026-04-03, this is no longer a mainstream-supported branch. Expect only security and data-loss fixes. If you need non-security bug fixes or want to align with third-party packages moving to current feature releases, staying on 5.2 becomes a growing maintenance tradeoff.
Upgrade to Django 6.0
Django 6.0 was released on December 3, 2025, and the official download page lists 6.0.3 as the latest 6.0 release as of 2026-04-03. Its mainstream support runs until August 2026, with extended support ending in April 2027. The main blocker-level upgrade change is that Django 6.0 requires Python 3.12 or newer; it also drops MariaDB 10.5 support in favor of MariaDB 10.6+, and removes some previously deprecated APIs and renderers. Django remains free and open source, so the decision is operational and compatibility-driven rather than pricing-driven.
When to choose
Use this when you want current-feature-branch bug fixes through August 2026 and your runtime can already move to Python 3.12+. It is the better choice if your team wants to stay closer to current Django releases and can absorb a bounded migration now.
Tradeoffs
You regain mainstream support and current release momentum, but you take immediate migration work and accept a shorter total support horizon than 5.2 LTS.
Cautions
Check Python first: Django 6.0 drops Python 3.10 and 3.11 entirely. Also review removed or incompatible items called out in the 6.0 notes, including removal of positional arguments to `BaseConstraint`, removal of `DjangoDivFormRenderer` and `Jinja2DivFormRenderer`, removal of `BaseDatabaseOperations.field_cast_sql()`, the new default of `DEFAULT_AUTO_FIELD` to `BigAutoField`, and backend-specific caveats such as MariaDB 10.5 no longer being supported.
Try with your AI agent
$ npm install -g pocketlantern $ pocketlantern init # Restart Claude Code, Cursor, or your MCP client, then ask: # "Should I upgrade to Django 5.2 now?"