Issue 344: Happy Birthday Djangonaut Space!
News
Happy Birthday Djangonaut Space!
Djangonaut Space celebrates its third birthday! The project started as an idea and, over the past three years, has grown beyond expectations.
Django Software Foundation
DSF member of the month - Salim Nuru
Salim Nuru joins DSF as June 2026 member of the month, sharing how he got started with Django, why he likes security by default, and what he’s building now.
Keeping Up with the Django Community
A curated map of public Django community spaces: weekly DSF Office Hours, DSF board updates, Steering Council meetings, and working groups on accessibility, the website, and online community.
Updates to Django
Today, "Updates to Django" is presented by Raffaella from Djangonaut Space! 🚀
Last week we had 18 pull requests merged into Django by 6 different contributors - including a first-time contributor! Congratulations to Ayoub Bouaik for having their first commits merged into Django - welcome on board!
- Fixed a regression in Django 6.0 in the PBKDF2 and MD5 password hashers that raised
UnicodeDecodeErrorforbytespasswords that were not valid UTF-8. Passwords supplied asstror as UTF-8bytesare unaffected (#37184). - A new
mail.E001deployment-only system check prevents using one of Django’s email backends that is not intended for production use in the'default'MAILERSentry. (#37166) - A new
mail.W001system check warns whenMAILERSis defined but does not include a'default'entry.(#37161) - In cases where cached pages or template fragments varied on arguments, e.g.
vary headersforcache_page()andUpdateCacheMiddleware, or the vary_on arguments to thecachetemplate tag (generated bymake_template_fragment_key()), the cache keys are different from the keys generated by older versions of Django. After upgrading to Django 6.1, the first request to any previously cached page or template fragment that varies on additional information will be a cache miss.(#37101, #37174)
Sponsored Link
FREE Python error tracking from Honeybadger – all signal, no noise Production bugs don’t arrive one at a time. One mistake can trigger thousands of identical exceptions. Honeybadger groups similar errors into a single issue and sends alerts that you can pause or ignore in a single click – so you get signal, not noise

Python Software Foundation
Python Software Foundation News: PSF Board Election Dates for 2026
PSF Board elections run September 1 to September 15, 2026, with nominations opening July 28 and a voter affirmation cut-off on August 25.
Packaging Council Inaugural Election Dates
After PEP 772 approved the Packaging Council governance process, the inaugural Python Packaging Council election will run in parallel with the 2026 PSF Board election, filling all five seats.
Wagtail CMS News
Our new product strategy for Wagtail
Wagtail lays out its future product direction and the priorities guiding development next. If you build on Wagtail, this is the roadmap thinking to track for what may ship, what may shift, and where effort is likely to land.
Articles
Nifty Django Feature: F Expressions
F expressions let Django update a model field based on the current value stored in the database, not a value pulled into Python. Use them to avoid “read then write” patterns and keep concurrent updates from stepping on each other.
Safer local envs with 1Password and op run
Use 1Password’s op tool to run local workflows without copying secrets into your environment or repo. The result is a tighter loop for starting Django with credentials loaded on demand.
Python: store extra data for objects in a WeakKeyDictionary
When you need extra data associated with objects without preventing garbage collection, WeakKeyDictionary gives you a safe mapping from object to metadata. It’s a practical fit for cases like Django tooling that tracks state per AST nodes, such as django-upgrade’s fixer functions.
United Nations Open Source Week 2026
From AI driven vulnerability triage to maintainer burnout, here are practical takeaways from UN Open Source Week on the future of open source security and sustainability.
The CRA is not about open source
The Cyber Resilience Act changes how manufacturers handle open source software, but argues it does little to improve funding or long term maintenance for the projects they rely on.
Maintaining a mature Open Source project: dealing with the upgrade treadmill with the help of a LLM
Maintaining a mature Django package gets a little less tedious with an LLM-powered runbook that automates the upgrade treadmill across Python and Django releases.
Open Source Comes From People
A keynote by Robert Haas at PG Data 2026 focused on the humans behind PostgreSQL and the challenges of sustaining open-source communities. His message for finding new contributors through mentorship and engagement is a useful mirror for Django and every community that wants to keep growing.
Videos
Lunch Talk Series: Swiss Army Django: Small Footprint ETL
Noah Kantrowitz walks through ETL in Django using async-friendly patterns, including task factories, failure modeling, croniter-based scheduling, and multi-stage transforms with coroutines. He also covers Django’s async constraints around ORM and transactions, plus a neat way to build Celery-like task decorators using autodiscover_modules.
Sponsored Link
Who is helping you level up as a Django developer?
The software world is wild right now. If you're feeling overwhelmed or anxious about your career as a Django developer, let's meet. The first one is free, plus you pay at the end of the month, and only if you're satisfied.

Django Fellow Reports
Jacob Walls
Jacob's weekly Django Fellow report.
Natalia Bidart
Natalia’s weekly Django Fellow report.
Django Job Board
Senior Python/Django Developer at Gryps
Founding ML/Data Scientist (Remote, UK) at MyDataValue
Projects
adinhodovic/wagtail-resume
A Wagtail project made to simplify creation of resumes for developers.
deschler/django-modeltranslation
Translates Django models using a registration approach.