Django News Newsletter

Archives
Sponsor Us
Jobs
Podcast
Videos
Subscribe
August 14, 2026

Issue 350: Django moves to an annual release cycle

News

Django moves to an annual release cycle

Starting in January 2028, Django switches from its eight-month cycle to one feature release per year (matching Python's annual October releases), dropping the LTS distinction in favor of every release getting one year of mainstream support followed by two years of security and data-loss fixes; nothing changes before then.

DSF Office Hours

The DSF Board holds open office hours every Wednesday at 6:00 PM UTC, no agenda or invitation needed. Right now the main topics are the Executive Director search and the 2026 fundraising goal.

Django Girls - August Newsletter

Tie-in with Djangonaut Space for a team to work on the Django Girls infrastructure during the upcoming session. Plus a call to join the Social Media Team.

PyPI freezes the HTML index API

PyPI is adopting PEP 833 to stop extending the HTML simple-index format with new metadata, pushing future additions to the JSON API instead; nothing breaks and no action is needed unless you're a mirror or bulk consumer, in which case consider switching to JSON.


Releases

Django REST Framework 3.18.0

Django REST Framework 3.18.0 drops support for Django 4.2, 5.0, and 5.1, adds Django 6.1 support, and changes list-serializer (many=True) errors to a dict format. It also adds a @throttle_scope decorator for function-based views, unaccent support in SearchFilter, and nulls_distinct support for UniqueTogetherValidator.

Python 3.12.14, 3.11.16, and 3.10.21 are now available!

Security-only releases for the three versions, fixing roughly 30 vulnerabilities including path-traversal issues in tar/ZIP extraction, billion-laughs protection in XML parsing, and (for 3.11 and 3.10) an SSL certificate parsing fix; upgrading is highly recommended.

Wagtail 8.0rc1

The first 8.0 release candidate adds custom base page models, a global permission-policy registry, and rich-text-to-HTML serialization in the v2 API. It stops downconverting AVIF/WebP images to PNG by default and adds provisional Django 6.1 support, pending django-ninja compatibility.


Django Software Foundation

Django Steering Council Meetings - 2026

At its August 3 meeting, the Steering Council voted on DEP 19 membership matters, discussed DEP 20's annual release cycle, and talked through what "Django Core Developer" should mean. Fellows also flagged DEP 19 implementation gaps, a naming question for the ORM's RAISE fetch mode, and an upcoming table-expressions proposal.


DjangoCon US

Save 10% on DjangoCon US 2026 registration

DjangoCon US 2026 runs August 24 to 28 in Chicago and ONLINE, now under two weeks away. Register through our link to take 10% off. A new One Day rate is now available if you can't make the whole week. Time is running out to get your ticket. Get yours before they are gone! Online tickets available.

DjangoCon US 2026, August 24-28, Chicago


Python Software Foundation

Announcing the Packaging Council Election Candidates for 2026!

The inaugural Python Packaging Council election has 17 nominees for 5 seats (the top 2 get two-year terms, the next 3 get one-year terms); PSF voting members must affirm by August 25 at 2:00 pm UTC, with voting running September 1-15.

Announcing the PSF Board Candidates for 2026!

18 candidates are running for 4 open PSF Board seats, with the same August 25 affirmation deadline and September 1-15 voting window; members who voted last election are carried over automatically unless their email changed.


Wagtail CMS News

Free talk ideas for Wagtail Space 2026

Wagtail Space 2026 runs November 18-20, and the CFP is open at pretalx.com/wagtail-space-2026/cfp; organizers are capping AI-focused talks at roughly half the program, so non-AI proposals stand a better chance.


Updates to Django

Today, "Updates to Django" is presented by Raffaella from Djangonaut Space! 🚀

Last week we had 14 pull requests merged into Django by 8 different contributors - including 2 first-time contributors! Congratulations to Jakob Friedrich and OsmnvAslan for having their first commits merged into Django - welcome on board!

The fetch mode that raises a FieldFetchBlocked exception has been renamed to FETCH_RAISE.

Thanks to the contributor's effort, the admin save_as behavior for view-only inlines has been fixed, ensuring they are correctly rendered after validation errors.

The documentation for converting a ManyToManyField to use a through model has also been updated for converting correcting incorrect on_delete options and adding some additional caveats.


Django Fellow Reports

Django Fellow Report - Jacob

Django 6.1 shipped this week. Jacob also cross-pollinated GSoC's multi-column subquery work with a search-performance improvement he tried out on djangoproject.com.

Django Fellow Report - Natalia

Most of Natalia's week went to the security release, then assisting Jacob with the Django 6.1 final release, including translation updates that turned into a bit of a spiral.

Django Fellow Report - Sarah

Sarah's main focus was the GSoC project migrating Django's integration tests from Selenium to Playwright, which she hopes to land soon.


Articles

Nifty Feature: Admin Form Injection

Reuse Django admin's built-in popup machinery (showRelatedObjectLookupPopup() and dismissRelatedLookupPopup()) to build custom popup workflows that inject a value into an admin form field, not just the stock foreign-key picker.

Storing Django Static and Media Files on Cloudflare R2

A walkthrough of wiring django-storages and boto3 up to Cloudflare R2 (zero egress fees), using two buckets: a public one for static files and public media with querystring_auth = False, and a private one for restricted media served through signed URLs.

Introducing django-msgspec

django-msgspec swaps in msgspec, a C-based serializer several times faster than the standard library, as a drop-in replacement for JsonResponse, DRF's parsers and renderers, session serializers, and more. It handles numeric dict keys and huge integers that trip up orjson, though it encodes non-finite floats as null and rejects None/boolean dict keys.

Newlines

Why splitting text into lines is trickier than it looks, and why Python's splitlines() recognizes ten different line-break code points.

Introducing emojet, a fast emoji lookup library

Adam Johnson built emojet, a Rust-backed replacement for the emoji package's emojize()/demojize(), after finding that package's 520 KB JSON file cost 22ms just to import. emojet imports 23.7x faster, is up to 70x faster on lookups, and uses about 40% less memory.


Events

Keynote: Boldly Go, Building Worlds: Is there Room for me on the Bridge? - Dawn Wages

Dawn Wages opens DjangoCon US 2026 Monday at 9:00 AM, drawing on Star Trek and Octavia Butler's Afrofuturism to reflect on a decade in the Python community (PSF Board Chair, Django Girls, Wagtail) and what it takes to build equitable, accountable open source spaces.

What I'm looking forward to at DjangoCon US 2026

Attending for his fifth year, the author is most looking forward to the people, an open-spaces package-maintainers discussion, running Sprints as chair alongside Kudzayi Bamhare, and the speakers dinner. He'll also be handing out handmade bookmarks to fellow readers.

DjangoCon US 2026 conference prep

Three quick logistics posts from the organizers: why you should volunteer (badges, room timing, and speaker support, no experience needed), how to give a Lightning Talk (five minutes, any topic, sign-up announced onsite), and how to stay active (a Strava group, the hotel's pool and gym, and the 18-mile Lakefront Trail).


Videos

Introducing t-strings: f-strings with superpowers - Dave Peck (PyCascades 2026)

Dave Peck introduces Python 3.14's t-strings, which look like f-strings but evaluate to Template instances, helping prevent SQL/HTML injection and enabling custom formatting via libraries like tdom and t-sql. He covers when to reach for them, adoption strategies, and current editor tooling support.


Django Job Board

Full Stack Software Engineer (Hybrid) at Provision 🆕

Toronto-based construction-AI startup building full-stack product surfaces and AI-forward document-processing systems.

Executive Director at Django Software Foundation 🆕

Remote US role running the DSF's fundraising, operations, and public representation as its first Executive Director.

Security Developer at Python Software Foundation

Global remote role triaging CPython/PyPI vulnerabilities and remediating supply-chain attacks alongside the Python Security Response Team.

Senior Full Stack Engineer at Hive Collective

US-only remote, backend-leaning full-stack role at a profitable LegalTech SaaS with an AI-assisted workflow.

Senior Backend Engineer at MyOme

Remote US backend role building portal integrations for patients and providers ordering genetic testing.

Python + TypeScript Engineers at Fusionbox

Remote US consultancy role building Django/React systems for financial workflows and multi-tenant architectures.


Projects

adamchainz/django-msgspec

msgspec-powered utilities for Django.

adamchainz/emojet

Convert, find, and count emoji in Python.


Django News is not associated with the Django Software Foundation.

Django is a registered trademark of the Django Software Foundation.

Don't miss what's next. Subscribe to Django News Newsletter:
Older → Issue 349: Django 6.1 and a DSF Executive Director
link
jefftriplett.com
Powered by Buttondown, the easiest way to start and grow your newsletter.