Django community: RSS
This page, updated regularly, aggregates Community blog posts from the Django community.
-
PyUtrecht (NL) meetup: the future of Python typing - Victorien Plot
(One of my summaries of the PyUtrecht meetup in Utrecht, NL). Note: Victorien is currently the number one person maintaining Pydantic. Pydantic is basically "dataclasses with validation". There was a show of hands: about 70% uses type hints. Type hints has been around since python 3.5. There have been improvements during the years like str|None instead of Union(str, None) in 3.10, for instance. Something I didn't know: you can always introspect type hints when running your python code: typing.get_type_hints(my_func). Getting typing-related changes into Python takes a lot of work. You need to implemeent the changes in CPython. You have to update the spec. And get it supported by the major type checkers. That's really a difference to typescript, as typing is built-in from the start, there. Something that helps typing in the future is 3.15's lazy from xxx import yyy import. There's an upcoming PEP 764, "inline typed dictionaries": def get_movie() -> {"name": str, "year": int}: # At least something like this ^^^, I can't type that quickly :-) ... He has some suggestions for a new syntax, using something like <{ .... }>, but getting a syntax change into Python takes a lot of talking and a really solid … -
The silent mistake that's slowing down your Django app
Hey, Happy Monday! Why are you getting this: *You signed up to receive this newsletter on Built with Django. I promised to send you the latest projects and jobs on the site as well as any other interesting Django content I encountered during the month. If you don't want to receive this newsletter, feel free to unsubscribe anytime. News and Updates I’ve been dedicating less time to Built with Django unfortunately, but this is not for nothing. I’ve been working on a few side projects. One of them is TuxSEO. I launched on Product Hunt today, so if you could check it out, it would mean the world to me. Made a bunch of upgrades to libraries used and hopefully this should mean smoother website experience. I have a few posts in the making so stay tuned. Trying out a new subject format for the newsletter. Let me know what you think. Sponsors Instead of doing a sponsoring block this week, I want to share a launch of my product: TuxSEO. If you could check it out, it would mean the world to me ❤️ Projects Starminder - GitHub starred project reminder Bank Statement Generators - Your Reliable Partner for … -
Django News - Django 2025 Survey Results and Django's annual fundraiser - Oct 31st 2025
News PyCharm & Django annual fundraiser Boost productivity and contribute to Django initiatives by purchasing PyCharm at a 30% discount while supporting Django Fellows, the DSF Foundation, and many conferences and events including Django Girls. djangoproject.com Django Developers Survey 2025 Results The Django Developer Survey 2025 highlights widespread adoption of recent Django versions, increased async integration, and robust community preferences in tools, testing, and infrastructure. Have thoughts? Share them on the State of Django 2025 forum post. jetbrains.com Django is now a CVE Numbering Authority (CNA) Django Software Foundation has been authorized by the CVE Program as a CVE Numbering Authority (CNA)! This means Django can be more autonomous as part of the process for assigning CVE IDs to vulnerabilities and creating/publishing info about the vulnerability in the associated CVE Record. djangoproject.com 2026 DSF Board Nominations (last call) LAST CALL: If you are interested in helping to support the development of Django we’d enjoy receiving your application for the Board of Directors. Please fill out the 2026 DSF Board Nomination form by 23:59 on October 31, 2025 Anywhere on Earth to be considered. djangoproject.com State of MariaDB 2025 Survey If you use MariaDB with Django, please take a moment to … -
Django 2025 Survey Results and Django's annual fundraiser
News PyCharm & Django annual fundraiser Boost productivity and contribute to Django initiatives by purchasing PyCharm at a 30% discount while supporting Django Fellows, the DSF Foundation, and many conferences and events including Django Girls. Django Developers Survey 2025 Results The Django Developer Survey 2025 highlights widespread adoption of recent Django versions, increased async integration, and robust community preferences in tools, testing, and infrastructure. Have thoughts? Share them on the State of Django 2025 forum post. Django is now a CVE Numbering Authority (CNA) Django Software Foundation has been authorized by the CVE Program as a CVE Numbering Authority (CNA)! This means Django can be more autonomous as part of the process for assigning CVE IDs to vulnerabilities and creating/publishing info about the vulnerability in the associated CVE Record. 2026 DSF Board Nominations (last call) LAST CALL: If you are interested in helping to support the development of Django we’d enjoy receiving your application for the Board of Directors. Please fill out the 2026 DSF Board Nomination form by 23:59 on October 31, 2025 Anywhere on Earth to be considered. State of MariaDB 2025 Survey If you use MariaDB with Django, please take a moment to fill out their annual … -
Reliable Django Signals
Django signals are extremely useful for decoupling modules and implementing complicated workflows. However, the underlying transport for signals makes them unreliable and subject to unexpected failures. In this article, I present an alternative transport implementation for Django signals using background tasks which makes them reliable and safer to use in mission critical workflows. Table of Contents A Common Workflow Creating a Payment Process Placing an Order Decoupling Modules Circular Dependency Polling Changes Django Signals Robust Django Signals Django Signals and Database Transactions Fault Tolerance Simulating Failures Atomicity Reliable Execution Django Tasks Using Django Tasks Execute Receivers as Django Tasks Testing Reliable Django Signals Reliable Signals Limitations Future Work Finals Thoughts A Common Workflow Say you have an application that accept payments from users. Usually, you don't go and implement your own payment solution. Instead, you integrate with some 3rd-party provider. Creating a Payment Process This is a common workflow for integrating with a 3rd-party payment provider: You create some payment process in the provider's system You redirect the user to some URL, or you get something to pass to the provider's client SDK Sometime in the future you get notified about the status of the payment, usually by webhook or … -
Django Survey 2025 - Jeff Triplett
🔗 LinksDjango Survey ResultsDjango Fundraising pageDjango Ecosystem PageDEFNA Call for 2027 Venue ProposalsLaravel MCP and Laravel BoostRevSys, Jeff's personal website, and micro blogDjango News newsletterDjango TVDjango Packages📦 Projectsdjango-prodserverAtuin Desktopenvirons📚 BooksWhy Machines LearnEfficient Linux at the Command LineJessie Sima books🎥 YouTubeYouTube Channel: @djangochatSponsorThis episode was brought to you by Buttondown, the easiest way to start, send, and grow your email newsletter. New customers can save 50% off their first year with Buttondown using the coupon code DJANGO. -
Django News - Django 6.0 beta 1 released - Oct 24th 2025
News Django 6.0 beta 1 released Django 6.0 beta 1 is now available. It represents the second stage in the 6.0 release cycle and is an opportunity to try out the changes coming in Django 6.0. djangoproject.com PyCharm & Django annual fundraiser JetBrains and the Django Software Foundation have launched their annual “Buy PyCharm, Support Django” fundraiser, running from October 23 to November 11, 2025, offering 30% off PyCharm with all proceeds donated to support Django’s development and community programs. djangoproject.com Announcing Python Software Foundation Fellow Members for Q3 2025! 🎉 Quite a few friends of Django are newly-announced Fellows! blogspot.com CPython Core Dev Sprint 2025 at Arm Cambridge: The biggest one yet For one week, Arm’s Cambridge headquarters became the heart of Python development. Contributors from around the world came together for the CPython Core Developer Sprint. It was the largest gathering in the project’s history, with 35 core developers and 13 invited guests collaborating in person. blogspot.com Updates to Django Today, "Updates to Django" is presented by Raffaella from Djangonaut Space! 🚀 Last week we had 26 pull requests merged into Django by 15 different contributors - including 4 first-time contributors! Congratulations to Lev Zlobin, Segni Mekonnen, Augusto … -
Django 6.0 beta 1 released
News Django 6.0 beta 1 released Django 6.0 beta 1 is now available. It represents the second stage in the 6.0 release cycle and is an opportunity to try out the changes coming in Django 6.0. PyCharm & Django annual fundraiser JetBrains and the Django Software Foundation have launched their annual “Buy PyCharm, Support Django” fundraiser, running from October 23 to November 11, 2025, offering 30% off PyCharm with all proceeds donated to support Django’s development and community programs. Announcing Python Software Foundation Fellow Members for Q3 2025! 🎉 Quite a few friends of Django are newly-announced Fellows! CPython Core Dev Sprint 2025 at Arm Cambridge: The biggest one yet For one week, Arm’s Cambridge headquarters became the heart of Python development. Contributors from around the world came together for the CPython Core Developer Sprint. It was the largest gathering in the project’s history, with 35 core developers and 13 invited guests collaborating in person. Wagtail CMS News 🪶 Wagtail 7.2 Release Candidate 1 adds Python 3.14 support, drops Python 3.8, introduces new admin keyboard shortcuts, a usage count filter, and improved comment handling. 🛠️ Wagtail 7.1.2 is a maintenance release with fixes for label formatting, userbar loading on multi-site … -
Weeknotes (2025 week 43)
Weeknotes (2025 week 43) I published the last weeknotes entry in the first half of September. Drama in OSS I have been following the Ruby gems debacle a bit. Initially at Feinheit we used our own PHP-based framework swisdk2 to build websites. This obviously didn’t scale and I was very annoyed with PHP, so I was looking for alternatives. I remember comparing Ruby on Rails and Django, and decided to switch from PHP/swisdk2 to Python/Django for two reasons: The automatically generated admin interface and the fact that Ruby source code just had too much punctuation characters for my taste. It’s a very whimsical reason and I do not put any weight on that. That being said, given how some of the exponents in Ruby/Rails land behave I’m very very glad to have chosen Python and Django. While not everything is perfect (it never is) at least those communities agree that trying to behave nicely to each other is something to be cheered and not something to be sneered at. Copilot I assigned some GitHub issues to Copilot. The result wasn’t very useful. I don’t know if I want to repeat it, local tools work fine for when I really need … -
My favorite Django packages
My favorite Django packages Inspired by other posts I also wanted to write up a list of my favorite Django packages. Since I’ve been working in this space for so long and since I’m maintaining quite a large list of packages I worry a bit about tooting my own horn too much here; that said, the reasons for choosing some packages hopefully speak for themselves. Also, I’m sure I’m forgetting many many packages here. Sorry for that in advance. Core Django speckenv: Loads environment variables from .env and automatically converts them to their Python equivalent if ast.literal_eval understands it. Also contains implementations for loading database, cache, email and storage configuration from environment variables (similar to dj-database-url). I added this functionality to speckenv when some of the available environment configuration apps’ maintenance state was somewhat questionable. django-cors-headers: CORS header support for Django. This would be a nice addition to Django itself. sentry-sdk: I’m using Sentry in almost all projects. django-template-partials: Template partials for Django! This has been added to the upcoming 6.0 release of Django. While the Django template language has always been evolving and improving, this feels like the first larger step in a long time. As I and others … -
An Introduction of sorts
I realised this week after a short conversation on Mastodon that I haven't ever shared my personal Django journey, so hear goes! As a recent graduate in 2012, I first encounter Django while working at Ocado Technology, tasked with building internal tools for other developers. I was shown the ropes of Django by Ben Cardy (@benbacardi) and Mike Bryant. Essentially this was about putting a frontend to some scripts which would provision users and allow them to upload their ssh keys. This progressed to automating application provisioning with some hackery using the rubypython package if I remember correctly and storing data in an LDAP database. I started using Django 1.4, explored packaging these projects into .deb files, setup an internal pypi instance and tried to created a unified UI package across multiple projects. Finally we did start to open source a few packages on Github. 2015 saw me leave Ocado to join a small charity startup using Django. Here I joined Bruno Alla (@browniebroke) building out a Django application hosted on heroku. For a long time it was just us two as developers, but this eventually grew to a team of 6. Again we published a few packages that we … -
Django on the Med - Paolo Melchiorre
🔗 LinksDjango on the Med and #DjangoOnTheMed hashtagPaolo Melchiorre’s Website and LinkedInMy Django on the Med postDjango GitHub Issues for Django on the Meddjango-rapid and django-boltDjango: One ORM to Rule Them All📦 Projectsdjango-http-compressionbasedpyrightPython 3.14 uuid📚 BooksHow Infrastructure Works by Deb ChachraDjango for Professionals by William VincentMore Everything Forever by Adam Becker🎥 YouTubeYouTube Channel: @djangochatSponsorThis episode was brought to you by HackSoft, your development partner beyond code. From custom software development to consulting, team augmentation, or opening an office in Bulgaria, they’re ready to take your Django project to the next level! -
Accessible Traffic Stop Data with NC CopWatch
Forward Justice partnered with Caktus to transform North Carolina’s 32 million+ inaccessible traffic stop records into an open-source public resource. This tool empowers communities and advocates to analyze law enforcement data and drive data-driven policy reform. -
Async Django: a solution in search of a problem?
A client recently asked me a seemingly simple question: “If we switch our Django backend to run on an ASGI server, will it get faster?” The short answer is no. The slightly longer answer is that switching the server from WSGI to ASGI does nothing on its own. To see any change, you have to start rewriting your views to be async, and even then, the benefits are marginal at best for 99% of web applications. For their specific workload, offloading heavy tasks to a background worker is a far simpler and more effective solution. This conversation got me thinking. My experience with async in the Django ecosystem limited to Django Channels for WebSocket support. It works, but the setup is complex. If I were starting today, I’d probably use Server-Sent Events, or maybe build a tiny, separate WebSocket server in TypeScript and have my Django app post updates to it. Simple, decoupled, and far less cognitive overhead. But I have never used async views, and nobody that I know has used Async Django apart from Channels. No async views or async database calls. So if the performance gains are elusive and the complexity is high, why did the Django … -
Django Chat - Episode 187
A podcast on the Django Web Framework by William Vincent and Carlton Gibson. -
Working in Between Public and Private
The default working model for open source projects is working in public: public bug trackers, public forums, “pull requests welcome”, and so forth. Sure, there’s some level of gatekeeping – it’s extremely rare for an open source project to accept code from anyone without some level of review by a trusted group – but the key point is: you don’t need permission or an invite to get started, you can just show up. This is also the default for many small-to-medium-sized companies’ engineering organizations: while the engineering department is usually split into smaller teams, anyone from any team with sufficient time and interest is welcome to hop into another team’s slack channel or corner of the codebase. However, there are situations where this doesn’t work (I’ll talk about a few of those situations below). When that happens, the impulse is to go full-on in the other direction, and work entirely in private. “Private” meaning: work done by a select group of insiders, with no mechanism for the broader company/community to get involved. But… it’s not a binary! There are many working models that fall in between fully public and fully private. This blog post is about those middle-ground options. My … -
Moving a Domain to Another Registrar
The Situation The domain for my first SaaS project 1st-things-1st.com was registered with GoDaddy. Even though the whole project was already running under my company’s name, I never really bothered to move the domain to my company’s account at Namecheap. Last week I noticed that the domain was about to expire, and I thought, alright, time to finally do it. I had never transferred a domain before, so I wasn’t sure how it would go or whether I could pull it off without any downtime. Here’s how it went. The Story Namecheap has this feature called “Transfer to Us.” You just follow a few simple steps: request a transfer for your domain, enter a one-time Auth code (also called as EPP - Extensible Provisioning Protocol - code) from another registrar to confirm you’re the owner, and pay for another year. At GoDaddy’s side, there was a whole confirmation process to make sure I really wanted to transfer the domain and understood it couldn’t be undone. Once that was done, I got the code I needed for Namecheap. Then came the waiting part. It took almost a week to get the confirmation that the transfer was successful, which was expected according … -
Fixing the `Query` import error while upgrading Wagtail from 5 to 7
While upgrading an old project from Wagtail 5 to 7, I encountered this error: ImportError: cannot import name 'Query' from 'wagtail.search.models' After some searching, I found out what’s wrong. It turns out Wagtail moved the Query model from wagtail.search.models to wagtail.contrib.search_promotions in version 5, but until version 6, you … Read now -
Django News - 2025 Malcolm Tredinnick Memorial Prize awarded to Tim Schilling - Oct 17th 2025
News 2025 Malcolm Tredinnick Memorial Prize awarded to Tim Schilling The Malcolm Tredinnick Memorial Prize for 2025 was awarded to Tim Schilling. Check out Tim's post about winning it too. djangoproject.com 2026 DSF Board Nominations DSF board nominations are now open, inviting candidates to help shape Django governance, marketing, and global event outreach through strategic leadership. djangoproject.com Python 3.15.0 alpha 1 Python 3.15.0 alpha 1 introduces experimental features including a dedicated profiling package, default UTF-8 encoding, a new PyBytesWriter C API, and improved error messages. blogspot.com Python 3.13.9 is now available! Python 3.13.9 quickly fixes a regression in inspect.getsourcelines when decorators are followed by comments or empty lines, enhancing introspection reliability for modern development. blogspot.com Announcing PSF Community Service Award Recipients! PSF Community Service Awards recognize exemplary Python community contributions with awardees like Katie McLaughlin whose diverse efforts include advancing Django and open source outreach. blogspot.com Updates to Django Today, "Updates to Django" is presented by Raffaella from Djangonaut Space! 🚀 Last week we had 9 pull requests merged into Django by 7 different contributors - including 1 first-time contributor! Congratulations to Tim Kamanin for having their first commits merged into Django - welcome on board! In Django 5.2 it's … -
2025 Malcolm Tredinnick Memorial Prize awarded to Tim Schilling
News 2025 Malcolm Tredinnick Memorial Prize awarded to Tim Schilling The Malcolm Tredinnick Memorial Prize for 2025 was awarded to Tim Schilling. Check out Tim's post about winning it too. 2026 DSF Board Nominations DSF board nominations are now open, inviting candidates to help shape Django governance, marketing, and global event outreach through strategic leadership. Python 3.15.0 alpha 1 Python 3.15.0 alpha 1 introduces experimental features including a dedicated profiling package, default UTF-8 encoding, a new PyBytesWriter C API, and improved error messages. Python 3.13.9 is now available! Python 3.13.9 quickly fixes a regression in inspect.getsourcelines when decorators are followed by comments or empty lines, enhancing introspection reliability for modern development. Announcing PSF Community Service Award Recipients! PSF Community Service Awards recognize exemplary Python community contributions with awardees like Katie McLaughlin whose diverse efforts include advancing Django and open source outreach. Wagtail CMS News Wagtail Space 2025: A Stellar Journey Wagtail Space 2025 showcased innovative CMS customization including practical AI integrations, advanced search features, and community-driven contributions that enhance Wagtail and Django development. Updates to Django Today, "Updates to Django" is presented by Raffaella from Djangonaut Space! 🚀 Last week we had 9 pull requests merged into Django by 7 … -
Make Personal Dashboards with Python Shiny
Conveying meaning using data, Dave will walk through the importance and key features of dashboards. He will also showcase a dashboard he made for a his classical guitar practice using Python Shiny, a tool for building ‘reactive data & AI apps in pure Python,’ according to their website. -
Pycon NL: programming, past and future - Steven Pemberton
(One of my summaries of the Pycon NL one-day conference in Utrecht, NL). (Note: I've heard a keynote by Steven at pygrunn 2016.) Steven is in the python documentary, he co-designed the abc programming language that was the predecessor to python. ABC was a research project that was designed for the programmer's needs. He also was the first user of the open internet in Europe in November 1988, as the CWI at the university had the first 64kbps connection in Europe. Co-designer of html, css, xhtml, rdf, etc. 1988, that's 37 years ago. But only about 30 years earlier, the first municipality (Norwich, UK) got a computer. 21 huge crates. It ran continuously for 10 years. A modern Raspberry pi would take 5 minutes to do the same work! Those early computers were expensive: an hour of programming time was a year's salary for a programmer. So, early programming languages were designed to optimize for the computer. Nowadays, it is the other way around: computers are almost free and programmers are expensive. This hasn't really had an effect on the way we program. He's been working on declarative programming languages. One of the declarative systems is xforms, an xml-based declarative … -
Pycon NL: typing your python code like a ninja - Thiago Bellini Ribeiro
(One of my summaries of the Pycon NL one-day conference in Utrecht, NL). By now, the basics of python type hints are well known: def something(x: int) -> float: ... def get_person(name: str, age: int|None) -> Person: ... Note: I've tried typing (...) fast enough, but my examples will probably have errors in them, so check the typing documentation! His slides are here so do check those :-) Sometimes you can have multiple types for some input. Often the output also changes then. You can accept both import types and suggest both output types, but with @overload you can be more specific: from typing import overload @overload def something(x: str) -> str: ... def something(x: int) -> int: ... Tyou can do the same with a generic: from typing import TypeVar T = TypeVar("T") @overload def something(x: T) -> T: ... # New syntax def something[T](x: T) -> T: ... # Same, but restricted to two types def something[T: str|int](x: T) -> T: ... Generic classes can be handy for, for instance, django: class ModelManager[T: Model]: def __init__(self, model_class: type[T]) -> None: .... def get(self, pk: int) -> T: ... Type narrowing. Sometimes you accept a broad range of items, … -
Pycon NL: from flask to fastapi - William Lacerda
(One of my summaries of the Pycon NL one-day conference in Utrecht, NL). Full title: from flask to fastapi: why and how we made the switch. He works at "polarsteps", a travel app. Especially a travel app that will be used in areas with really bad internet connectivity. So performance is top of mind. They used flask for a long time. Flask 2 added async, but it was still WSGI-bound. They really needed the async scaling possibility for their 4 million monthly users. Type hinting was also a big wish item for improved reliability. They switched to fastapi: True async support. It is ASGI-native Typing and validation with pydantic. Pydantic validates requests and responses. Type hints help a lot. Native auto-generated docs (openapi). Built-in swagger helps for the frontend team. This meant they gave up some things that Flask provided: Flask has a mature ecosystem. So they left a big community + handy heap of stackoverflow answers + lots of ready-made plugins behind. Integrated command-line dev tools. Flask is handy there. Simplicity, especially for new devs. They did a gradual migration. So they needed to build a custom fastapi middleware that could support both worlds. And some api versioning to … -
Pycon NL: tooling with purpose - Aris Nivortis
(One of my summaries of the Pycon NL one-day conference in Utrecht, NL). Full title: tooling with purpose: making smart choices as you build. Aris uses python and data to answers research questions about everything under the ground (as geophysicist). As a programmer you have to make lots of choices. Python environment, core project tooling, project-specific tooling, etc. First: python environment management: pyenv/venv/pip, poetry, uv. And conda/pixi for the scientific python world. A show of hands showed uv to be real popular. Now core project tooling. Which project structure? Do you use a template/cookiecutter for it? Subdirectories? A testing framework? Pytest is the default, start with that. (He mentioned "doctests" becoming very popular: that surprised me, as they were popular before 2010 and started to be considered old and deprecated after 2010. I'll need to investigate a bit more). Linting and type checking? Start with ruff for formatting/checking. Mypy is the standard type checker, but pyright/vscode and pyre are options. And the new ty is alpha, but looks promising. Also, part of the core tooling: do you document your code? At least a README. For domain specific tooling there are so many choices. It is easy to get lost. What …