4.2 released 3 April 2023, latest 4.2.30.
Django 4.2 reached end of life on 7 April 2026.
What changed
Django 4.2 was a long-term-support release that expanded the asynchronous ORM interface, adding async variants for many QuerySet and related-manager operations and allowing asynchronous iteration over querysets. It added support for psycopg 3 alongside the existing PostgreSQL driver, introduced the STORAGES setting for configuring storage backends, and added InMemoryStorage for non-persistent use cases. Database schema features included GeneratedField, database comments for tables and fields, and validation of model constraints during model validation. It also continued the framework’s deprecation cycle, so code that was valid in earlier releases could emit warnings or require changes before later Django versions.
What staying costs
Django 4.2 has reached end of life, so upstream no longer provides fixes for newly discovered security issues, regressions, or compatibility defects in this line. Remaining on it leaves the application dependent on its existing patch level and shifts responsibility for risk assessment, mitigations, and any backported fixes to the team. Over time, newer Python runtimes, database drivers, operating systems, browsers, and Django ecosystem packages may stop testing or supporting 4.2, increasing the chance that routine dependency or platform updates become blocked. The longer an application remains on 4.2, the more accumulated Django deprecations and third-party package changes can make the eventual upgrade larger and harder to isolate.
What to do
Select a currently supported Django target after checking its supported Python and database versions against the production environment; a current long-term-support line is often a practical target when application and dependency compatibility allows. First update the application to the final available 4.2 patch release, then review the release notes and deprecation guidance for every intervening Django version. Inventory third-party Django packages, drivers, authentication integrations, storage backends, and deployment tooling, and upgrade or replace components that do not support the target Django and Python combination. Run the full test suite with deprecation warnings enabled, use django check and deployment checks, and test migrations, admin workflows, authentication, background jobs, async views, and database-specific behavior in a production-like environment. Deploy through a staged rollout with monitoring and a rollback plan, and remove compatibility workarounds once the new supported line is established.
We can tell you what moving off Django 4.2 involves.
What it takes to move off Django 4.2 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
