Django community: RSS
This page, updated regularly, aggregates Community blog posts from the Django community.
-
I Miss Tabs vs Spaces... And Other AI Musings
A written guide to my DjangoCon US talk on deploying machine learning models with Django. -
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. -
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. -
How I write Django views
When learning Django, one of the first major forks in the road is how to write your views. Django gives you two main options: simple functions or powerful classes. The official tutorial starts you off gently with function-based views (FBVs). It begins with the basics: def index(request): return HttpResponse("Hello, world. You're at the polls index.") It then gets a bit more complicated, but still using function-based views: def index(request): latest_question_list = Question.objects.order_by("-pub_date")[:5] context = {"latest_question_list": latest_question_list} return render(request, "polls/index.html", context) But quickly after that, it dives into generic views: class IndexView(generic.ListView): template_name = "polls/index.html" context_object_name = "latest_question_list" def get_queryset(self): """Return the last five published questions.""" return Question.objects.order_by("-pub_date")[:5] I think this is a mistake. There are a lot of generic views in Django: View, TemplateView, DetailView, ListView, FormView, CreateView, DeleteView, UpdateView, RedirectView, plus a whole bunch of date-based views: ArchiveIndexView, YearArchiveView, MonthArchiveView, WeekArchiveView, DayArchiveView, TodayArchiveView, DateDetailView. By far the biggest issue I have with these views is their hidden complexity. Just look at the documentation of DetailView. To understand this one class, you need to be aware of its inheritance tree: django.views.generic.detail.SingleObjectTemplateResponseMixin django.views.generic.base.TemplateResponseMixin django.views.generic.detail.BaseDetailView django.views.generic.detail.SingleObjectMixin django.views.generic.base.View And then you need to know its method resolution order, or what it calls internally. … -
DjangoCon Africa 2025
Hi there, it's been a while as usual. I have been for the first time to DjangoCon Africa few weeks ago. It was in Arusha, Tanzania. Tim Schilling has written an excellent blog post about his experience at DjangoCon Africa, you can read his blog post. He collected the other abstracts from the conference participants. First DjangoCon Africa It's always a special feeling when it's your first time in a conference. You meet new people, discover how the conference is run and familiarize yourself with the organization and how it is supposed to work. I know DjangoCon Europe well, I have been an organizer, a volunteer and a attendee. One thing you have to know is DjangoCon events are run by volunteers for free. I really would like to thank the organizers and volunteers behind this conference. I know it's a lot of work behind the scenes, but gathering people in one place and seeing folks connecting and share knowledge it's a priceless joy. If you want to help the community globally, this is a really good way to contribute. Moreover, I would like to thank all the sponsors that made this conference possible. This is particularly important to me … -
django-content-editor now supports cloning of content
django-content-editor now supports cloning of content What is the content editor? Django’s builtin admin application provides a really good and usable administration interface for creating and updating content. django-content-editor extends Django’s inlines mechanism with an interface and tools for managing and rendering heterogenous collections of content as are often necessary for content management systems. We are using django-content-editor in basically all projects, as a part of feincms3. The content editor is used not only for building page content, but also for blog entries, for building multi-step intelligent form wizards, for learning units and even to digitize teaching materials for schools, including static and interactive content. The great thing about it is that it enables us to edit complex content inside Django’s administration interface without trying to replace it with a completely separate interface, as some other more well-known Django-based CMS want to do. Cloning content The complexity of managed content has grown a bit, especially since we introduced support for nesting sections. Teaching materials are often available in several learning levels, with only minor differences between them. Unfortunately, the differences aren’t purely additive: It’s not the case that higher levels just have more materials available. Otherwise, we’d probably have used … -
How to migrate from pip-tools to uv
At Caktus, many of our projects use pip-tools for dependency management. Following Tobias’ post How to Migrate your Python & Django Projects to uv, we were looking to migrate other projects to uv, but the path seemed less clear with existing pip-tools setups. Our requirements are often spread across multiple files, like this: -
Built with Django Newsletter - 2025 Week 34
Hey, Happy Friday! 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 Apologies for not sending updates in a while. I'm working on partially automatic this process so that I'm more reliable. Because I left the newsletter hanging, something weird happened. We got 5k+ subscribers in just couple of months. Needless to say, 99% of them are fake. I'm going to send this issue to all and see who opens it. For the people who don't open for 3 issues I will just unsub manually. I decided to remove the Django updated part. Too much extra work for now. Hopefully you are ok with that. If not, let me know. Sponsors This issue is sponsored by CodeRabbit an AI Code Reviewer that provides context-aware feedback, refactoring suggestions and highlights code security issues. In plain terms, you finally get a senior level developer reviewing your code! The best news is that it … -
Menu improvements in django-prose-editor
Menu improvements in django-prose-editor I have repeatedly mentioned the django-prose-editor project in my weeknotes but I haven’t written a proper post about it since rebuilding it on top of Tiptap at the end of 2024. Much has happened in the meantime. A lot of work went into the menu system (as alluded to in the title of this post), but by no means does that cover all the work. As always, the CHANGELOG is the authoritative source. 0.11 introduced HTML sanitization which only allows HTML tags and attributes which can be added through the editor interface. Previously, we used nh3 to clean up HTML and protect against XSS, but now we can be much more strict and use a restrictive allowlist. We also switched to using ES modules and importmaps in the browser. Last but not least 0.11 also introduced end-to-end testing using Playwright. The main feature in 0.12 was the switch to Tiptap 3.0 which fixed problems with shared extension storage when using several prose editors on the same page. In 0.13 we switched from esbuild to rslib. Esbuild’s configuration is nicer to look at, but rslib is built on the very powerful rspack which I’m using everywhere. In … -
Django News - State of Python 2025 Results - Aug 22nd 2025
News State of Python 2025 Is Out! Explore the key trends and actionable ideas from the latest Python Developers Survey, which was conducted jointly by the Python Software Foundation and JetBrains PyCharm and includes insights from over 30,000 developers. jetbrains.com PyPI now serves project status markers in API responses PyPI now exposes standardized project status markers through its HTML and JSON index APIs, enabling package installers to programmatically signal dependency status and manage installations. pypi.org Preventing Domain Resurrection Attacks PyPI now checks for expired domains to prevent domain resurrection attacks, a type of supply-chain attack where someone buys an expired domain and uses it to take an account through password resets. pypi.org Updates to Django Today "Updates to Django" is presented by Velda Kiara from Django Events Foundation North America (DEFNA)! 🚀 Last week we had 15 pull requests merged into Django by 10 different contributors - including a first-time contributor! Congratulations to Rohit for having their first commits merged into Django - welcome on board! Django Core Updates ✨ Fix to Subquery.resolve_expression() output field handling which corrects how Django determines the output_field in subqueries. This adjustment restores consistent and predictable query behavior. Template partials arrive in DTL adds two … -
Configurable UI in Software
Another short one today, that is a pattern I have noticed in a couple pieces of software I use, notably Todoist, Slack & Vivaldi. All three of these allow a user to configure the menu options to some degree. Slack has the option to customise the navigation options shown within a particular workspace to optimise the experience for a user. Todoist takes this a step further in the mobile app to allow a user to sort the menu items. Browsers have always had a great experience of customisation, but Vivaldi takes this to an awesome extreme by allowing a user to customise each and every possible context menu, giving true flexability to their users. Personally I have never considered the power of this and wonder if there are any efficient implementation of this for Django without creating a huge amount of complexity. The naive default solution would likely involve a model and a context processor and/or a middleware, it might be something I add in my next project, if we feel it would be beneficial to our users. -
Django News - A New Django Fellow - Aug 15th 2025
News Jacob Tyler Walls is Our New Fellow Jacob Tyler Walls joins the Django Fellowship, bringing Django contributions, Triage and Review experience, ORM expertise, and GIS and open source maintenance skills. djangoproject.com Python 3.14.0rc2 and 3.13.7 are go! Python 3.14 release candidates provide performance enhancements, new language features, and ABI stability, urging Django maintainers to prepare for compatibility testing. blogspot.com Announcing the PSF Board Candidates for 2025! There are four board seats open for this year's PSF election. The timeline, voting details, and candidates are included in the post. blogspot.com Announcing Python Software Foundation Fellow Members for Q2 2025! 🎉 PSF announces Q2 2025 Fellows, recognizing new contributors who lead projects, maintain libraries, organize events, and mentor to grow the Python community globally. blogspot.com Django Software Foundation DSF member of the month - Jake Howard Jake Howard, DSF member and Django contributor, leads DEP 14 and develops Django tasks, advancing native background workers and task infrastructure for Django. djangoproject.com Building better APIs: from Django to client libraries with OpenAPI Combine Django REST Framework with drf-spectacular to generate OpenAPI specs and use openapi-generator plus CI to produce and maintain automated client libraries. djangoproject.com Django’s accessibility contributing guide The Django accessibility team …