160 wires and counting

$ follow Django

Keep up with Django in about 3 minutes: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

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.

$ status

wire 2026-10-06
stories 11

© 2026 RepoJournal Home Showcase How it works Privacy

$ the-wire · showcase

Spatial SRID validation, JSONField __in fixes land in Django

By RepoJournal · Filed · About Django · Composed from the cited sources · methodology

Django's spatial and JSON lookup paths both had silent-corruption bugs fixed in the last day: srid=None no longer compiles ST_Transform(..., NULL), and bare Value() primitives in JSONField __in no longer crash or return wrong rows.

Fixed #37322 -- Avoided transforms on spatial fields with srid=None. django/django

by Yassin Bahri

After spatial queries stopped interpolating the SRID param into the SQL template, srid=None on a spatial field became valid input to ST_Transform() on PostGIS and SpatiaLite, which returned NULL for the whole value instead of raising. The change validates the target SRID before compiling a transform in both the direct-value and expression paths, and preserves the documented srid=-1 behavior.

Fixed #37377 -- Fixed JSONField __in crash/wrong result for Value() primitives. django/django

by Clifford Gama

Since 9b8e4c6d7d wrapped every Value() right-hand param of a JSONIn lookup in JSON_EXTRACT()/JSON_VALUE(), a bare Value("primitive") was treated as JSON text even though its inferred output_field is non-JSON, producing raw primitives where JSON was expected. JSONIn.resolve_expression_parameter() now JSON-encodes the Value's raw .value itself. If you use JSONField __in with plain Value() primiti...

Fixed #37386 -- Observed delete_confirmation_max_display=0 for inlines. django/django

by jacobtylerwalls

delete_confirmation_max_display=0 was being treated the same as None, so inlines disagreed with ModelAdmin's delete actions about how many objects to list before collapsing to a count. Passing 0 now behaves consistently across both paths.

Results for ubuntu-latest added [skip ci] django/django-asv

by Github Bot

The benchmark suite picked up results for ubuntu-latest, extending django-asv's coverage to that runner.

Quick answers

What shipped in Django on October 6, 2026?
Django's spatial and JSON lookup paths both had silent-corruption bugs fixed in the last day: srid=None no longer compiles ST_Transform(..., NULL), and bare Value() primitives in JSONField __in no longer crash or return wrong rows. In total, 6 commits and 5 pull requests landed.
Who contributed to Django on October 6, 2026?
3 developers shipped this update, including jacobtylerwalls, yassinbahri, and cliffordgama.
What were the notable Django updates?
Fixed #37322 -- Avoided transforms on spatial fields with srid=None, Fixed #37377 -- Fixed JSONField __in crash/wrong result for Value() primitives, and Fixed #37386 -- Observed delete_confirmation_max_display=0 for inlines.