Django News Newsletter

Archives
Sponsor Us
Jobs
Podcast
Videos
Subscribe
October 16, 2026

Issue 359: Python 3.15 Is Here and Python 3.16 Alpha 1

Python 3.15 is here and 3.16 alpha 1 begins, Carlton Gibson maps out async transactions for Django 6.2, and Django Day Copenhagen's talks land on DjangoTV.

News

Python 3.15.0 (final) is here!

Python 3.15 is out, with explicit lazy imports (PEP 810), built-in frozendict and sentinel types, UTF-8 as the default encoding, and a JIT that runs 7-12% faster depending on the platform. If you use IDLE or tkinter on macOS 27, read the release notes first: menu dialogs can hang.

Python 3.16.0 alpha 1 is now available

The first of seven alphas for Python 3.16 is out, with features landing until the May 4, 2027 beta and the final release planned for October 5, 2027. Library maintainers are invited to start testing now.


Django Software Foundation

Django Steering Council Meetings - 2026

Notes from the October 5 meeting with the Fellows: the set-returning DEP needs reviewers, every memcached Python client is now defunct, and Python 3.15 support raises questions about makedirs permission semantics. PyPy 8.0 support and the Sovereign Tech Fund's resilience program were also on the agenda.


Wagtail CMS News

We have a stellar group of speakers for Wagtail Space 2026

The schedule is out for this year's online, half-day Wagtail Space, opening with Thibaud Colas's State of Wagtail. Talks cover running Wagtail at scale on Kubernetes, measuring a site's web emissions, agent readiness, and Wagtail Preen, a new codemod CLI.


Updates to Django

Last week we had 26 pull requests merged into Django by 9 different contributors - including a first-time contributor! Congratulations to Abheet for having their first commits merged into Django - welcome on board!

New in Django 6.2:

  • The now template tag now supports passing a template variable as the format string.

New in Django 6.1:

  • To improve accessibility, the admin's breadcrumbs are now rendered as <li> elements within an <ol> instead of <div> elements. The breadcrumb for the current page is now marked with aria-current="page".
  • Added compatibility for oracledb 26.0.0+ (#37411).
  • Fixed a regression in Django 6.1 where the YAML serializer crashed if passed the sort_keys option (#37405).
  • Fixed a regression in Django 6.1 where a Value expression with a None value and an output field other than JSONField crashed on SQLite when used in a top-level JSONField in lookup (#37403). Using such an expression in an IN lookup is likely unintended, since SQL NULL cannot match any value.

Django Fellow Reports

Django Fellow Report - Jacob

Jacob cleared a spike of release blockers for 6.1.2, all but two of them found internally using a model, and added compatibility for python-oracledb 26. He also fixed a YAML serializer crash with sort_keys and landed prep work for multiline template tags.

Django Fellow Report - Sarah

Sarah shipped the October 6 security release (four CVEs plus a follow-up across three versions), the most complex she has done, and reviewed fixes like @non_atomic_requests now recognizing async views. Discussions about contributor sustainability mean Django may sit out next summer's GSoC.

Django Fellow Report - Natalia

Natalia confirmed a low-severity vulnerability and prepared its patch, filed two public hardening tickets (multipart boundaries and response header characters), and paused new HackerOne submissions. She also opened a PR to replace Django's vendored makedirs with os.makedirs() on Python 3.15+.


Sponsored

Reach 4,300+ Engaged Django Developers

Sponsor this newsletter to reach an active community of Python and Django developers.

Django Pony reading the news


Articles

Django: set up its test suite with uv

Adam Johnson's alternative to the official contributing setup: one uv pip install -e . -r tests/requirements/py3.txt gets Django and its test requirements into a fresh virtual environment. If pylibmc won't compile, filter it out with grep -v and process substitution, and Django skips only the memcached tests.

Towards Async Transactions in Django

Transactions need ordered queries, but async tasks interleave at every await, so one task's rollback can throw away another's writes. Carlton Gibson lays out the design worked out at the Django on the Med sprints: async with transaction.atomic() gets its own worker thread and connection, with only the opening task allowed to nest. He is aiming for 6.2, and a follow-up post says the asgiref release it depends on is due at the end of October. django-filter 26.2 is also out, adding Python 3.15 and escaping LinkWidget labels by default.

Personal Replacement for Echofeed

With Echofeed winding down, Paul Traylor built his own blog-to-Mastodon pipeline on Django's new tasks framework. His django-feedparser-low package handles feed scraping with ETag and 304 support, and a feed_filter decorator ties a task to an Entry's post_save so each feed can trigger its own processing.

Django Beginners: Part 2

Andrew Miller fleshes out his django.contrib.beginners idea as "guardrails" (stricter, silenceable warnings against common foot-guns) and "scaffolds" (starting points like the registration view django.contrib.auth leaves out), in a package meant to be outgrown. He wants to build it with a group from day one and is looking for collaborators.

Django Day Copenhagen 2026 and Secrets

Efe Oge recaps the talks that stuck with him, from Tom Carrick on rate limiting to Denny on timezones, and the hallway finding behind his own signing talk: most teams hand secret management to Ansible Vault or Kubernetes rather than Django.

Iframes that finally fit their content

Chrome 154 adds frame-sizing: content-height, so an iframe grows to fit its content with one line of CSS instead of postMessage and ResizeObserver plumbing. The catch: the embedded page has to opt in with a responsive-embedded-sizing meta tag naming the origins allowed to size it.

Core Dispatch #11

Six weeks of CPython news: Python 3.15.0 final, new PEPs for None-aware access and coalescing operators, PEP 755 withdrawn in favor of PyPI policy, the inaugural Python Packaging Council election results, and two new core developers.


Podcasts

Django Chat #207: Hiring in 2026 with Jon Gould

Jon Gould is the founder of Foxley Talent, a recruiting agency focused on Python and Django developers. We discuss what he's seeing in the market these days, the benefits of attending Python & Django conferences, and why humans matter more than ever in our new AI age.

Prefer to watch? The full episode is also on DjangoTV.

Django Hiring in 2026 with Jon Gould on DjangoTV


Videos

Django Day Copenhagen 2026

The October 2 livestream is now split into individual talks on DjangoTV, including keeping secrets secret in Django, timezone-safe Django, pre-commit hooks that catch Django problems early, admin model views and stand-alone pages, maintainable CRUD, and the lightning talks.

Django Day Copenhagen 2026 on DjangoTV


Django Job Board

Django roles were light this week, so here are two machine learning openings at HFT Architecture, one senior and one junior, that should appeal to Python and Django developers looking to branch out.

Machine Learning Engineer at HFT Architecture 🆕

Junior Machine Learning Engineer at HFT Architecture 🆕


Projects

pradeeppc/django-permission-tracer

DRF permissions end up spread across permission_classes, @action overrides, get_permissions() and composed expressions. This resolves all of it into an endpoint-to-permission map, traces which operand denied a given request, and flags endpoints an anonymous user can reach, with --fail-on-unprotected for CI.

pradeeppc/django-q-watchdog

When a django-q worker dies mid-task, the task simply vanishes: no failed row, no traceback. This records each task as it starts and heartbeats while it runs, so lost and timed-out tasks land in django-q's own Failed tasks, and a hung one gets reported as frozen.


Sponsor Django News

Reach 4,300+ Django developers every Friday. See sponsorship details and rates.


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 358: Django 6.1.2, 6.0.9, and 5.2.18 Security Releases and Djangonaut Space Session 7
link
jefftriplett.com
Powered by Buttondown, the easiest way to start and grow your newsletter.