$ cat django/week/2026-09-21.log
the week in review · Sep 21 – Sep 27, 2026
Django cuts ASGI middleware context switching, drops GDAL 3.3 and 3.4
By RepoJournal · composed from the cited sources · human-reviewed weekly · methodology
The MiddlewareMixin change fixes per-middleware context switching that defeated BaseHandler's single-transition intent; spatial users on older GDAL must upgrade.
Fixed #37177 -- Reduced per-middleware context switching under ASGI. django/django
Relying on MiddlewareMixin.__acall__() to handle async requests imposed per-middleware context switching, defeating BaseHandler's intent to transition only once per middleware chain. The fix minimizes breaking changes by keeping MiddlewareMixin's behavior intact for existing middleware; async stacks that wrap many middleware should see fewer context switches per request.
Fixed #37358 -- Dropped support for GDAL 3.3 and 3.4. django/django
GDAL 3.3 and 3.4 are no longer supported, so anything using GIS fields or GDAL-backed functionality on those libraries must move to a newer GDAL before upgrading Django. This is the period's only removal, and it is the item most likely to break an existing deployment.
Fixed #37321 -- Documented BaseSpatialField.srid=-1 behavior. django/django
The docs now spell out what BaseSpatialField.srid=-1 means, the value Django uses to mark a field as SRID-agnostic. If you have spatial models where the SRID was inferred rather than declared, this is the reference that explains the behavior you were seeing.
Added missing notes about including latest translations in 6.0.4 and 6.0.6. django/django
The 6.0.4 and 6.0.6 release notes now state that each release included the latest Transifex translation strings, which the notes had previously omitted. No code changed; the release record is now accurate for anyone auditing what shipped in those patch releases.
Corrected output of Prefetch.to_attr example. django/django
The Prefetch.to_attr example was printing the wrong output, a regression introduced in d6cca8b904de144946453aea93dd627c09abfca9. If you copied that snippet to check what to_attr holds, the corrected version is now in the docs.
Fixed #37051 -- Improved organisation of documentation home page. django/django
The documentation home page has been reordered: entry-point material (installation, tutorial) now leads, followed by conceptual topics, with the domains of concern reshuffled. Existing URLs and anchors are the thing to watch if you link into docs from your own site or runbook.
Results for ubuntu-latest added [skip ci] django/django-asv
by Github Bot
django-asv now records benchmark results for ubuntu-latest, so performance comparisons can be made against that runner rather than a single environment. Expect the ubuntu-latest series to fill in as further runs land alongside the existing results.
Removed redundant configuration for django-upgrade (#2869) django/djangoproject.com
djangoproject.com dropped duplicative django-upgrade configuration. Alongside: the docs home page reorganization, the corrected Prefetch example, and the 6.0.4/6.0.6 translation note round out a period otherwise dominated by the ASGI and GDAL changes.
$ ls django/week/ # the briefings behind this review
Keep up with Django in about 3 minutes: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
fair warning: these emails are deeply technical. diffs, version numbers, CVEs, benchmark deltas. if that's not your idea of a good read, this isn't your newsletter.
Folds into your digest — weekly by default, monthly if you prefer. Unsubscribe in one click.