What django/django shipped
Written by FoxPlug from the repository's own releases; not affiliated with Django Software Foundation. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/django/django; Django Software Foundation did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of October 5, 2026
What shipped
- Django 5.2.18 was released. Release
- Django 6.0.9 was released. Release
- Django 6.1.2 was released. Release
- Compatibility with oracledb 26.0.0 and later was added, covering the requirement that large parameter values be passed as temporary LOBs. Pull request #22112
- The
non_atomic_requestsdecorator now recognizes async views and returns an async wrapper instead of a sync one. Pull request #22064 - JSONField key lookups no longer crash when an integer key falls outside PostgreSQL's int4 range. Pull request #21825
- A crash when the
sort_keysoption is used with the YAML serializer was fixed. Pull request #22096 - The now template tag now accepts a variable for its format string. Pull request #21357
Why it matters
Three maintenance releases shipped this week, so users on the 5.2, 6.0 and 6.1 lines have tagged versions to upgrade to. Alongside them came a set of targeted fixes for database backends and serializers: Oracle compatibility with oracledb 26.0.0 and later, several JSONField lookup crashes and wrong results, and a YAML serializer crash. Async view handling also changed, with the non_atomic_requests decorator now returning a proper async wrapper.
Changelog entry
- Released Django 5.2.18. Release
- Released Django 6.0.9. Release
- Released Django 6.1.2. Release
- Added compatibility for oracledb 26.0.0 and later. Pull request #22112
- Made
non_atomic_requestsrecognize async views. Pull request #22064 - Prevented a JSONField key lookup crash when an integer key is outside PostgreSQL's int4 range. Pull request #21825
- Fixed a crash when
sort_keysis used with the YAML serializer. Pull request #22096 - Added variable support to the now template tag. Pull request #21357
- Avoided transforms on spatial fields with srid=None. Pull request #21890
- Observed delete_confirmation_max_display=0 for inlines. Pull request #22055
Week of September 28, 2026
What shipped
- UUID4() now persists data in lowercase on Oracle, fixing lookup failures caused by Oracle's implicit RAWTOHEX() conversion. Pull request #22057
- Fixed permission renames for chained RenameModel operations by maintaining an in-memory index of permission codenames. Pull request #22018
- The distinct(*fields) method now correctly resolves aliases containing double underscores instead of misinterpreting them as lookups. Pull request #22044
- TupleIn lookups no longer hang when F() expressions are supplied on the right-hand side. Pull request #21806
- Django's core email functions and settings now officially support email.headerregistry.Address objects. Pull request #21610
- SQLite database connections now automatically create parent directories if they don't exist, avoiding file open errors. Pull request #22030
- The djangodocs Sphinx extension was improved by removing obsolete Docutils workarounds and decoupling the console-tabs implementation. Pull request #21613
- Decimal comparison in RelatedGeoModelTest.test_related_union_aggregate() now uses proper tolerance of 1e-6. Pull request #22066
- An extra empty breadcrumb in the admindocs model index was removed. Pull request #22054
Why it matters
This week's fixes address database compatibility issues across Oracle and SQLite, resolve edge cases in query operations like distinct() and TupleIn lookups, and improve email handling standards compliance. These fixes prevent runtime errors and unexpected behavior that developers encounter when using specific database backends or advanced ORM features.
Changelog entry
- Fixed UUID4() to persist data in lowercase on Oracle databases. Pull request #22057
- Fixed permission renames for chained RenameModel operations. Pull request #22018
- Fixed distinct(*fields) to correctly resolve aliases containing double underscores. Pull request #22044
- Fixed TupleIn lookups hanging with F() expressions. Pull request #21806
- Added support for email.headerregistry.Address objects in email functions and settings. Pull request #21610
- SQLite connections now automatically create parent directories. Pull request #22030
- Improved djangodocs Sphinx extension compatibility. Pull request #21613
- Fixed decimal comparison tolerance in RelatedGeoModelTest. Pull request #22066
- Removed extra empty breadcrumb in admindocs model index. Pull request #22054
- Fixed test skips for Oracle Test Pilot. Pull request #22045
- Updated module references in documentation. Pull request #16294
Django shipped fixes for UUID handling on Oracle, permission renames in model migrations, distinct() alias resolution, TupleIn F() expression hangs, and SQLite path creation. Several compatibility and edge-case improvements across core features.
This week Django addressed critical database compatibility issues and ORM edge cases. Highlights include UUID4() persisting correctly on Oracle, fixed permission renames for chained model operations, proper alias resolution in distinct(*fields), prevented TupleIn hangs with F() expressions, and automatic SQLite parent directory creation. The release also improves email standards support with Address objects and refines the documentation tooling.
Week of September 21, 2026
What shipped
- Reduced per-middleware context switching under ASGI by fixing how MiddlewareMixin handles async requests. Pull request #21523
- Wrapped async iteration sites in aclosing to ensure proper resource cleanup in async contexts. Pull request #22025
- Dropped support for GDAL 3.3 and 3.4, keeping only versions within the last 5 years for Django 6.2. Pull request #22005
- Reorganized the documentation home page to better group and present various domains of concern. Pull request #21138
- Added missing release notes about latest translations included in versions 6.0.4 and 6.0.6. Pull request #22016
- Fixed a typo in the 6.1.2 release notes documentation. Pull request #22035
Why it matters
This week focused on ASGI performance improvements and resource management in async contexts, which matter for developers building async applications. Documentation improvements and dependency updates ensure users have accurate information and supported library versions.
Changelog entry
- Reduced per-middleware context switching under ASGI Pull request #21523
- Wrapped async iteration sites in aclosing for proper resource management Pull request #22025
- Dropped support for GDAL 3.3 and 3.4 Pull request #22005
- Reorganized documentation home page structure Pull request #21138
- Added missing release notes about translations in 6.0.4 and 6.0.6 Pull request #22016
- Fixed documentation typo in 6.1.2 release notes Pull request #22035
Weekly digest: improved ASGI middleware context switching, wrapped async iteration sites for proper cleanup, dropped GDAL 3.3 and 3.4 support, reorganized documentation, and added missing translation notes.
This week's updates to Django focus on async improvements and documentation clarity. We reduced per-middleware context switching under ASGI for better performance, ensured proper resource cleanup in async iteration, and dropped support for older GDAL versions. Documentation was reorganized for better navigation, and missing release notes about translations were added for versions 6.0.4 and 6.0.6.