Django community: RSS
This page, updated regularly, aggregates Community blog posts from the Django community.
-
Django: Introducing django-watchfiles, for more efficient runserver autoreloading
Django’s runserver automatically reloads when you change Python files. Without this autoreloading feature, you’d need to manually restart the server every time you made a code change. However, the default autoreloading implementation is inefficient, as it constantly polls the filesystem for changes. The alternative to polling is to use your operating system’s file watching APIs, which can efficiently notify the server when files change. Using this technique saves CPU and power, while making reloads faster and more reliable—all in all, a big win! But since these APIs are OS-specific, it’s best for Django to use a cross-platform library that wraps them. Django provides an integration with Facebook’s Watchman, which works as a file watching server. While I appreciate this integration, it does require installing, running, and maintaining an extra tool (Watchman itself). Additionally, the Python client library for Watchman, pywatchman, seems to be rather unmaintained. Most notably, it was broken on Python 3.10, and the fix was not released for 2.5 years, after Python 3.12 was released. I promoted the Watchman integration on this blog and in the first version of Boost Your Django DX, which came out just after Python 3.10 was released. But since pywatchman was broken, my … -
Django News - Django 6.0 Feature Freeze - Sep 19th 2025
News Django 6.0 alpha 1 released The Django 6.0 feature freeze is upon us. This is a chance to try it out now and report any bugs or issues before the public release in December. djangoproject.com Nominate a Djangonaut for the 2025 Malcolm Tredinnick Memorial Prize Nominations for the annual Malcolm Tredinnick Memorial Prize are now open. Malcolm was an early core contributor to Django and had a huge influence on Django as we know it today. Besides being knowledgeable he was also especially friendly to new users and contributors. He exemplified what it means to be an amazing Open Source contributor. djangoproject.com A former Djangonaut is called a Star! Hear directly from Stars, mentors, and others in the Djangonaut Space community as they share their experiences and perspectives. djangonaut.space DjangoCon US: Call for Venue Proposals 2027-28 We’re wrapping up DjangoCon US 2025, so it’s time to think about 2027 and possibly 28! DjangoCon US 2026 is tentatively planning to return to Chicago. Where will we be the following year or two? We need your help in making that decision! defna.org Announcing the 2025 PSF Board Election Results! Congratulations to the two new and two returning Board members who have … -
Don't Let Search Take You Down
Twice in the last few months we’ve had to deal with Django production site issues caused by inefficient search queries. -
Mercurial Mirror For Django 6.0 Branch
I usually create a new mirror when Django releases a Beta, but it will happen sooner this time : the 6.0 alpha 1 was just released, and I’ve set up the mirror for 6.0. For the record, those mirrors are read-only, and aimed at production (aka “I want an easy way to update Django on […] -
DjangoCon US 2025 Recap
🔗 LinksDjango on the MeDjango for AI talk notesDjangoCon US 2025 Recap:Talk Python: Django’s 20th Birthday Paneluv Livestream with Michael KennedyDjango Roadmap Session January 2024📦 ProjectsNanodjangoDj-liteDjango Formset📚 BooksEmpire of AI by Karen HaoRefactoring to Rust by Lily Mara & Joel Holmes🎥 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! -
Full text search with Django and SQLite
One thing I wanted to add to this blog for a long time was full text search. Content is steadily increasing and sometimes I have a hard time finding the exact right post to link to when writing a new post. My wife was also complaining that she could never find the post about backups for artists when she wanted to link it. So what a better way to spend a few hours of my vacation than to add full text search functionality. Usually when adding search to a system people eye ElasticSearch. A monstrosity I had my fair share of "fun" with and something I do not want to touch if I can avoid it. Avid Postgres users might lean on PostgreSQLs excellent full text search and vectorisation options. This blog is running on Django and SQLite and there is no chance I would add either of these two to the stack for "just a blog". SQLite has an extension for full text search. Technically multiple, but we are using FTS5. Per documentation we need a virtual table and fill it with our data. For the table we add the title of the post and its raw content. A … -
uv Livestream with Michael Kennedy
An in-depth look at the uv package manager, why it is so popular, and how to use it today. -
DjangoCon US 2025 Recap
Thoughts on a fun week in Chicago, favorite talks, sprints, and more. -
Django views versus the Zen of Python
A while ago, I wrote about how I write Django views, arguing that the base View class hits the sweet spot between the simplicity of function-based views and the often-overwhelming complexity of generic class-based views. The response to that article made it clear that I’m not alone in this thinking. It got me wondering: why does this approach feel so right? The answer, I believe, lies in the guiding principles of Python itself. The Zen of Python isn’t just a collection of clever aphorisms; it’s a framework for writing clear, maintainable, and effective code. When we look at Django’s view layer through this lens, it becomes apparent where things start to go astray. Here are all the ways that Django’s views (especially the generic class-based kind) break the Zen of Python. “There should be one - and preferably only one - obvious way to do it.” Python developers cherish this principle. It promotes consistency and readability. Yet, when it comes to something as fundamental as rendering “Hello, world!” in Django, the options are dizzying. Just look at the many ways to accomplish this simple task: The simple function: from django.http import HttpResponse def hello_world(request): return HttpResponse("Hello, world!") The base View … -
LLMs are making me a better programmer...
LLMs are making me a better programmer… I’m still undecided about LLMs for programming. Sometimes they are very useful, especially when working on a clearly stated problem within a delimited area. Cleaning the code up afterwards is painful and takes a long time though. Even for small changes I’m unsure if using LLMs is a way to save (any) resources, be it time, water, energy or whatever. They do help me get started, and help me be more ambitious. That’s not a new idea. Simon Willison wrote a post about this in 2023 and the more I think about it or work with AI the more I think it’s a good way to look at it. A recent example which comes to mind is writing end to end tests. I can’t say I had a love-hate relationship with end to end testing, it was mostly a hate-hate relationship. I hate writing them because it’s so tedious and I hate debugging them because of all the timing issues and the general flakyness of end to end testing. And I especially hate the fact that those tests break all the time when changing the code, even when changes are mostly unrelated. When … -
Django News - Djangonaut Space 2025 Session 5 - Sep 12th 2025
News Djangonaut Space 2025 Session 5 Applications Applications are open until September 14 end of day. This is your last chance to apply if interested! djangonaut.space Getting Started With Open Source Through Community Events Django community events empower developers to gain practical open source contribution experience via office hours, sprints, testathons, and live PR review sessions boosting personal growth. djangoproject.com DjangoCon US: Call for Venue Proposals 2027-28 So you want your city to host DjangoCon US? Hurrah! We’re delighted by your interest. Here’s what you need to know, and what we need to know, to consider your proposal. defna.org Django Software Foundation DSF at EuroPython 2025: Celebrating 20 years of Django EuroPython 2025 featured DSF's vibrant booth and collaborative sprints to commemorate Django's 20th anniversary, uniting contributors and strengthening community ties. djangoproject.com Updates to Django Today, "Updates to Django" is presented by Raffaella from Djangonaut Space! 🚀 Last week we had 12 pull requests merged into Django by 11 different contributors - including 1 first-time contributor! Congratulations to Ronan LE HAY for having their first commits merged into Django - welcome on board! In Django 6.0, the DEFAULT_AUTO_FIELD setting now defaults to BigAutoField, completing the transition that began in Django … -
Django for AI: My DjangoCon US 2025 Conference Talk
A written guide to my DjangoCon US talk on deploying machine learning models with Django. -
Weeknotes (2025 week 37)
Weeknotes (2025 week 37) I’m having a slow week after the last wisdom tooth extraction. Finally! I’m slowly recuperating from that. Also, I’m trying to split up the blog posts a bit and writing more standalone pieces instead of putting everything into weeknotes. This seems like a good idea to publish more, and should also help me when I try to find a particular piece of writing later. Releases django-content-editor 8.0.2: I fixed the ordering calculation in the cloning functionality; the tests are a bit too forgiving for my taste now but I just can’t figure out why the gap for inserting cloned items is sometimes larger than it should be. It doesn’t matter though, since ordering values do not have any significance, they only have to provide a definite ordering for content items. django-prose-editor 0.18.2: Cleaned up the documentation after the 0.18 cleanup (where automatic dependency management has been removed), fixed table styles when using dark mode. -
🔗 FACETS - Avalanche.org
“FACETS is an acronym presented by Ian McCammon to describe a set of 6 heuristic traps that were common in his study of recreational accidents.” -
Proposal: django.contrib.beginners
A few weeks back I wrote about a suggestion for a new warning in regard to makemigrations, which got some feedback on the fediverse some was positive, others a bit crictial of the other warning I was recently responsible for in 5.2. Anyway one suggestion from Carlton in that thread was interesting, the idea of app for beginners. It also reminded me of a conversation I had with Thibaud last year where he made a comment that with Wagtail features & changes, they try to consider the potential infinite future developers of the software over the fixed number of past developers that have already used Wagtail. So having a place where we prioritise future users and developers over the existing backward compatibility conerns is an interesting one to me. The idea is simply to put all of these beginner style warnings in to an app specifically for beginners. This easily contains the extra code into a couple of lines of configuration (as much configuration as any other third-party package). This could be a simple thing that then tutorials/books could recommend, it could possibly make it's way into a starter template for Django itself (perhaps when DEP 15 is implemented). The … -
Django News - Last call for DjangoCon US 2025 tickets! - Sep 5th 2025
News 🎟️ Last call for DjangoCon US 2025 tickets! DjangoCon US kicks off this Monday, September 8th - 12th in Chicago, IL USA. Online tickets are still on sale! If you are attending this year, Will, Jeff, and Catherine from this newsletter will be there. Say hello in person or virtually. Online tickets are only $99 USD and include three days and over 50 talks! djangoproject.com Django security releases issued: 5.2.6, 5.1.12, and 4.2.24 Django releases critical security patches in versions 5.2.6, 5.1.12, and 4.2.24, addressing high-severity SQL injection vulnerabilities in FilteredRelation column aliases via dictionary expansion. djangoproject.com Keyboard shortcuts in Django via GSoC 2025 GSoC 2025 delivers django-admin-keyshortcuts, a package that improves Django admin navigation and accessibility with customizable keyboard shortcuts, aiming for eventual inclusion in Django core. djangoproject.com Django MongoDB Backend Now Generally Available The new Django MongoDB Backend provides production-ready integration, enabling Django ORM, admin, and DRF usage with MongoDB Atlas features for scalable, flexible deployments. mongodb.com Python Type System and Tooling Survey 2025 Python Type System and Tooling Survey 2025 gathers insights on type hint practices, challenges and tooling usage to enhance static typing integration in Django projects. google.com Django Software Foundation DSF member of the … -
How to Make the Most out of DjangoCon US 2025
Tips on having the best conference experience. -
An Insider's Guide to DjangoCon US 2025
Tips on having the best conference experience. -
Talk Python: Celebrating Django's 20th Birthday With Its Creators
Recording a recent podcast appearance with Simon Willison, Adrian Holovaty, Will Vincent, Jeff Triplet, and Thibaud Colas. -
Leiden python meetup: HTMX - Jan Murre
(One of my summaries of the fifth Python meetup in Leiden, NL). The person who invented htmx (Carson Gross) always begins with hypermedia. Hypermedia is a media that includes non-linear branching from one location in the media to another, via hyperlinks. HTML is hypermedia, the world's most succesful hypertext. Another important term: HATEOS, hypermedia as the engine of application state. With hypermedia, state is on the server. So not in a javascript frontend. With traditional single page apps that you see nowadays, you only read some json and the frontend needs to know what to do with it. Lots of logic is on the client. And you get "javascript fatigue". With hypermedia, you have server-side rendering. Minimal javascript. Progressive enhancement. SEO friendly. And... accessible by default. The content you get includes the behaviour (like a link to delete an item). HTMX extends HTML with modern interactivity using simple attributes. You can target specific elements on your page for an update, so you don't need to get a full page refresh. And you can use any http verb (get/post/put/delete/patch). And you're not limited to forms and links: any element can trigger a request. Some attribute examples: hx-get issues a GET request … -
Leiden python meetup: memory graph - Bas Terwijn
(One of my summaries of the fifth Python meetup in Leiden, NL). Full title of the talk: memory graph: teaching tool and debugging aid in context of references, mutable data types, and shallow and deep copy. memory_graph is a python debugging aid and teaching tool. It is a modern version of python tutor. (There is an online demo) Python has two categories of types: Immutable types: bool, int, float, str, tuple, etcetera. They cannot be mutated, so when a value is changed, a copy is made. If you add an item to a tuple, you get a new tuple with the extra item. Mutable types: dicts, lists. You can change the values without the actual dict/list changing. You can add items to a list and you still have the same list object. When you want an actual copy of a mutable type, you need to use import copy and copy.copy(your_list). And copy.deepcopy(). list2 = list1 is an assignment. list2 = copy.copy(list1) gives you a second, separate, list object, but it points at the same values inside it as list1. list2 = copy.deepcopy(list1) gives you a second, separate, list object and separate copies of the values inside it. Watch out with … -
Weeknotes (2025 week 35)
Weeknotes (2025 week 35) Summer was and is nice. The hot days seem to be over (for now), but in the last years summer hasn’t really left until the end of September, so we’ll see. I personally like the warm weather but I really hoped that our leaders were smarter. The climate emergency could be seen from far away. The pigheadedness is hard to stomach. And of course it’s not the only problem we’re facing as humanity at all. Releases I did some longer-form writing about two of the releases here: Menu improvements in django-prose-editor and django-content-editor now supports cloning of content django-debug-toolbar 6.0: We have released a new version of the toolbar which supports persisting debugging data to the database. This is especially useful when using ASGI, because we cannot use threadlocal storage for this data then. django-prose-editor 0.18: Reworked the menu system to support dropdowns, not just button groups. Added a custom TextClass extension which allows adding classes to spans and a NodeClass extension which allows adding classes to nodes. Tiptap supports adding arbitrary styles, I’d rather limit this a bit more and only offer predefined CSS classes. django-content-editor 8.0: Added support for cloning content. Made the region … -
Django News - Python Documentary - Aug 29th 2025
News Python: The Documentary | An origin story A 90-minute documentary featuring Guido van Rossum, Travis Oliphant, Barry Warsaw, and many more, and they tell the story of Python’s rise, its community-driven evolution, the conflicts that almost tore it apart, and the language’s impact on... well… everything. youtu.be pypistats.org is now operated by the Python Software Foundation PSF now operates pypistats.org, transferring maintenance of its infrastructure and ensuring reliable community access to Python package statistics and performance data. blogspot.com DjangoCon US 2025 Hackathon form DjangoCon US 2025 is hosting a hackathon for all online and in-person attendees! google.com Django on the Med: Updates. Sponsors. Are you coming? A quick update on Django on the Med 🏖️ — your favourite Django sprint. 🥳 buttondown.com Updates to Django Updates to Django Today, "Updates to Django" is presented by Velda Kiara from Django Events Foundation North America (DEFNA)! 🚀 Last week we had 18 pull requests merged into Django by 10 different contributors - including a first-time contributor! Congratulations to artirix1927 for having their first commits merged into Django - welcome on board! ✨ Django Core Updates ✨ Fixed release notes for format_html() when called without arguments. Additionally, updated the release notes to … -
django-prodserver is live
I have been slowly working on my package django-prodserver which creates a Django management command API to interact with production processes. This package is directed at beginners but others may find it nice to have process configuration stored inside your settings file. Out of the box it supports: gunicorn uvicorn waitress celery django-tasks All of the above are available as package extras so can be installed as follows (or combinations): pip install django-prodserver[gunicorn] pip install django-prodserver[celery] pip install django-prodserver[uvicorn] pip install django-prodserver[waitress] pip install django-prodserver[django-tasks] I have also created a command devserver which is a simple rename of runserver Source Code (& Issues & PRs): https://github.com/nanorepublica/django-prodserver Docs (needs work): https://django-prodserver.readthedocs.io/en/latest/ My learnings on this package (as you can clearly see from the changelog) was the release process! A note to myself to work on this if I hope to produce more packages (and not simply talk about them) I would welcome feedback on this package as I would like to propose this gets merged into core at some point down the line (no rush on this of course). I would be especially keen to get Issues/PRs for any more common production processes I have missed from the package. -
Developing a Real-time Dashboard with Flask, Postgres, and Socket.IO
This tutorial looks at how to develop a real-time inventory tracking dashboard with Flask, Postgres, and Socket.IO.