DEV Community

endoflife-ai
endoflife-ai

Posted on • Originally published at endoflife.ai

Django End-of-Life Dates — Official EOL Schedule for Every Version

Django 4.2 LTS reached end of life on April 7, 2026 — six weeks ago. If you're running 4.2 in production, you are no longer receiving security patches from the Django project. Django 5.1 reached EOL even earlier, in December 2025. Between those two versions, a significant portion of the production Django ecosystem is now running unsupported software.


LTS vs Standard Releases — What It Means for EOL

Django's release model creates two very different support timelines, and choosing the wrong track is the most common reason teams end up on EOL software unexpectedly.

Standard releases — Django 4.0, 4.1, 5.0, 5.1, 6.0 — receive 16 months of support total. Eight months of active development, then eight months of security-only patches. Django 5.1 shipped in August 2024 and was EOL by December 2025 — 16 months later.

LTS releases — Django 3.2, 4.2, 5.2, and the upcoming 7.2 — receive three full years of support. Eight months active, then 28 months of security-only patches. Always anchor your Django version choice to an LTS release.

The LTS trap: Choosing an LTS version is correct — but it can create false security. Teams on Django 4.2 LTS knew they had until "sometime in 2026" and deprioritized the upgrade. Now 4.2 is EOL and many of those teams are scrambling. Plan your migration to the next LTS before the current one hits EOL, not after.


Complete Django EOL Schedule

Version Type Released End of Life Status EOL Risk Score™
Django 3.2 LTS Apr 6, 2021 Apr 1, 2024 EOL 89 Critical
Django 4.0 Standard Dec 7, 2021 Aug 1, 2023 EOL 92 Critical
Django 4.1 Standard Aug 3, 2022 Dec 1, 2023 EOL 91 Critical
Django 4.2 LTS Apr 3, 2023 Apr 7, 2026 EOL 76 Critical
Django 5.0 Standard Dec 4, 2023 Apr 1, 2025 EOL 83 Critical
Django 5.1 Standard Aug 7, 2024 Dec 3, 2025 EOL 78 Critical
Django 5.2 LTS Apr 2, 2025 Apr 30, 2028 ✅ Supported 18 Low
Django 6.0 Standard Dec 2025 Apr 30, 2027 ✅ Latest 12 Low

Django 4.2 LTS — EOL April 7, 2026

EOL Risk Score™: 76 Critical

Django 4.2 was the LTS release that replaced Django 3.2 LTS. It became the dominant production Django version for the 2023–2026 period.

4.2 LTS officially supports Python 3.8 through 3.12 — which creates a compound EOL risk. Python 3.8 reached EOL in October 2024 and Python 3.9 reached EOL in October 2025. If your Django 4.2 deployment is running on Python 3.8 or 3.9, you have two layers of EOL exposure: the framework and the runtime.

The Django project has stopped issuing security advisories for 4.2. CVEs affecting 4.2 will be documented but not patched.

Target version: Upgrade to Django 5.2 LTS — supported until April 2028. If you need more time, commercial extended support is available from vendors like TuxCare for EOL Django versions including 4.2.


Django 5.1 — EOL December 3, 2025

EOL Risk Score™: 78 Critical

Django 5.1 was a standard (non-LTS) release with a 16-month support window. Released August 2024, it reached EOL December 3, 2025 — a short window that many teams didn't fully track.

If your team upgraded to 5.1 and hasn't moved to 5.2 or 6.0 yet, you've been running unsupported Django for over five months.

Target version: Upgrade to Django 5.2 LTS or 6.0. From 5.1, the path to 5.2 is straightforward with no major breaking changes.


Django 5.2 LTS — Supported Until April 2028

EOL Risk Score™: 18 Low

Django 5.2 is the current LTS release and the recommended upgrade target for teams coming from 4.2 or 5.1. It supports Python 3.10 through 3.13. Support runs until April 30, 2028.

This is your target version if you're on 4.2 or 5.1.


Python Compatibility Matrix

Running Django on an EOL Python version compounds your security exposure. This matrix shows which Python versions are supported by each Django version.

Django Version Python 3.8 (EOL) Python 3.9 (EOL) Python 3.10 Python 3.11 Python 3.12 Python 3.13
Django 4.2 LTS (EOL)
Django 5.0 (EOL)
Django 5.1 (EOL)
Django 5.2 LTS ✅
Django 6.0 ✅

Double EOL exposure: If you're running Django 4.2 on Python 3.8 or 3.9, both your framework and your runtime are past end of life. Check your Python version with python --version.


How to Upgrade Safely

01 — Check your current version
Run python -m django --version or check your requirements.txt. Also check your Python version with python --version — you may need to upgrade Python alongside Django.

02 — Read the release notes for every version between yours and the target
Going from 4.2 to 5.2 means reading the 5.0, 5.1, and 5.2 release notes. Pay particular attention to removed features, changed default settings, and database migration behavior changes.

03 — Run Django's system checks
After updating Django, run python manage.py check --deploy. This surfaces deprecated API usage, security misconfigurations, and compatibility issues before they hit production.

04 — Update third-party packages
Your Django upgrade will often require updating django-rest-framework, celery, django-allauth, and other ecosystem packages. Run pip list --outdated and update packages that have dropped support for your current Django version.

05 — Run your full test suite before and after
Django upgrades are usually smooth but behavioral changes in the ORM, template engine, or middleware can surface in tests.

06 — Upgrade Python if needed
Django 5.2 LTS requires Python 3.10+. If you're on Python 3.8 or 3.9, upgrade Python first. Safest sequence: upgrade Python to 3.12, validate your app, then upgrade Django to 5.2.

07 — Consider extended support if you need more time
If your 4.2 migration will take longer than a few sprints, commercial extended support from vendors like TuxCare provides continued security patches for EOL Django versions including 3.2, 4.0, 4.2, 5.0, and 5.1.


Check your full Python stack for EOL exposure at endoflife.ai — free EOL checker, stack scanner, and EOL Risk Score™ for 455+ products. No signup required.

Top comments (0)