Django community: RSS
This page, updated regularly, aggregates Community blog posts from the Django community.
-
Django Icon packs with template partials
As I have been building out the startup (launching very very soon), I was struck by the pattern that I mentioned last year of Claude grouping lots partials into a single file. I think we are almost at the point of being able to define simple components in a template without a templatetag. My goal here is discovering how much we can do with the vanilla Django Template language with the recent additions. I still need to work on the specifics, but currently I have a file called icons.html in my project which has the lots of the following: {# Heroicons (outline, 24px) as template partials #} {# Usage: {% include "icons/heroicons.html#wallet" %} #} {% partialdef wallet %} <svg class="size-5 text-gray-500 group-has-[:checked]:text-white" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 12C21 10.7574 19.9926 9.75 18.75 9.75H15C15 11.4069 13.6569 12.75 12 12.75C10.3431 12.75 9 11.4069 9 9.75H5.25C4.00736 9.75 3 10.7574 3 12M21 12V18C21 19.2426 19.9926 20.25 18.75 20.25H5.25C4.00736 20.25 3 19.2426 3 18V12M21 12V9M3 12V9M21 9C21 7.75736 19.9926 6.75 18.75 6.75H5.25C4.00736 6.75 3 7.75736 3 9M21 9V6C21 4.75736 19.9926 3.75 18.75 3.75H5.25C4.00736 3.75 3 4.75736 3 6V9" /> </svg> {% endpartialdef wallet %} {% partialdef percent-badge %} <svg … -
Django 6.0 Tasks: a framework without a worker
Background tasks have always existed in Django projects. They just never existed in Django itself. For a long time, Django focused almost exclusively on the request/response cycle. Anything that happened outside that flow, such as sending emails, running cleanups, or processing uploads, was treated as an external concern. The community filled that gap with tools like Celery, RQ, and cron-based setups. That approach worked but it was never ideal. Background tasks are not an edge case. They are a fundamental part of almost every non-trivial web application. Leaving this unavoidable slice entirely to third-party tooling meant that every serious Django project had to make its own choices, each with its own trade-offs, infrastructure requirements, and failure modes. It’s one more thing that makes Django complex to deploy. Django 6.0 is the first release that acknowledges this problem at the framework level by introducing a built-in tasks framework. That alone makes it a significant release. But my question is whether it actually went far enough. What Django 6.0 adds Django 6.0 introduces a brand new tasks framework. It’s not a queue, not a worker system, and not a scheduler. It only defines background work in a first-party, Django-native way, and provides … -
Django News - Django Packages Refresh - Jan 16th 2026
News New Django Packages Django Packages has a fresh new look thanks to a redesign launched this week. djangopackages.org Releases Python 3.15.0 alpha 5 (yes, another alpha!) Python 3.15.0 alpha 5 was released as a developer preview, introducing UTF8 as the default encoding, improved JIT performance, a new sampling profiler, and APIs. blogspot.com Django Software Foundation DSF member of the month - Omar Abou Mrad Omar Abou Mrad, DSF member of the month, is a longstanding Django contributor and Discord helper who created DryORM, used by Django contributors. djangoproject.com Python Software Foundation Anthropic invests $1.5 million in the Python Software Foundation and open source security Anthropic pledged $1.5 million to the PSF to fund CPython and PyPI security improvements, including proactive automated package review and the creation of malware datasets. blogspot.com Wagtail CMS News Five sustainable ways to build habits for learning Wagtail in 2026 Sustainable ways to learn Wagtail in 2026: pace docs, split tutorials, watch conference talks, try Wagtail AI experiments, and use playful test content. wagtail.org What's new in Wagtail CMS Wagtail 7.3 features autosave, StreamField block settings, and llms.txt docs adoption, presented in live demos with previews of Wagtail AI and roadmap. wagtail.org Updates to Django … -
Building a Django API Framework Faster than FastAPI - Farhan Ali Raza
🔗 LinksFarhan's personal site and GitHubdjango-boltdjango-replturbo-orm bombardierRobyn web frameworkReddit thread on Django Bolt vs Django Ninja vs FastAPIDeveloper Productivity AI Arena🎥 YouTubeYouTube Channel: @djangochatSponsorThis episode is brought to you by Six Feet Up, the Python, Django, and AI experts who solve hard software problems. Whether it’s scaling an application, deriving insights from data, or getting results from AI, Six Feet Up helps you move forward faster.See what’s possible at sixfeetup.com. -
Django News - Django Bugfixes, Community Wins, and What’s NextIssue 319 - Jan 9th 2026
News Django bugfix releases issued: 5.2.10, 6.0.1 Django released bugfix updates 5.2.10 and 6.0.1; release packages and signed checksums are available on the downloads page and PyPI. djangoproject.com DjangoCon US 2026 Call for Proposals The CFP is now open until March 16, 2026. The conference this year will be September 14-18, again in Chicago. pretalx.com Wagtail CMS News Wagtail Wrapped 2025 Wagtail's 2025 recap highlights four releases culminating in 7.2 with a 7.0 LTS, deferred validation toward autosave, search revamp, and AI package improvements. wagtail.org Updates to Django Today, "Updates to Django" is presented by Raffaella from Djangonaut Space! 🚀 Last week we had 6 pull requests merged into Django by 5 different contributors - including a first-time contributor! Congratulations to Mykhailo Havelia for having their first commits merged into Django - welcome on board! Fixed a bug in Django 5.2 where data exceeding max_length was silently truncated by QuerySet.bulk_create() on PostgreSQL (#33647). Fixed a regression in Django 6.0 where the Widget.use_fieldset attribute of ClearableFileInput was flipped from False to True (#36829). Django Newsletter Articles Migrating From Celery to Django Tasks Django’s new Task Framework makes it surprisingly easy to replace Celery, covering configuration, task migration, queues, workers, and periodic … -
Documenting Django's technical culture
Following along the lines from one of posts from last year about Django being a protocol or an API, there was a recent discussion on Mastodon about configurable content types, and there’s a ticket in flight to implement this new feature that would make content types configurable. This made me think, in django-prodserver, I’m already creating configurable backends, and in Django generally we have configurable components: databases, caches, storage backends, email backends, and so on. Most of whole system is configurable, and the INSTALLED_APPS setting could be considered the heart of this. I see some potential value in building out a meta design documents for how we expect new features to be built in Django, describing the kinds of designs or Python APIs we would anticipate in feature. For example, there’s clearly a pattern of a configurable backend via settings, as I mentioned. But are there other conventions we should codify? Whether that takes the form of a contribution document, or an issue template in GitHub, but I think starting with some documentation would be a good start. It might also reveal some gaps in existing features that don't meet the standard we would expect for new features being introduced. … -
Django Quiz 2025
Last month, I held another quiz at the December edition of Django London. The December quiz is an annual tradition at our meetup, a way of making this final event of the year more relaxed and giving away some nice prizes. This was the seventh quiz that I’ve presented, and the eighth overall. Here’s an action shot taken by one of my co-organizers: Below is the quiz itself, so you can try it at home. Answers follow at the end, with some extra explanation. Dates refer to December 2025, so if you’re reading in the future, take that into consideration. (Posting a little late this time, so happy new year!) Enjoy! The quiz 1. How old is Django this year? 5 years 15 years 20 years It is as ageless as the stars 2. Which of these databases does core Django support? MongoDB Oracle Microsoft SQL Server A bunch of YAML files 3. Which of the below names is not a current Django Fellow? Jacob Tyler Walls Natalia Bidart Sarah Boyce Django Reinhardt 4. Who manages the Django project? The Python Software Foundation Adrian Holovaty The Django Software Foundation Anyone who lists Django as a skill on LinkedIn 5. What … -
Django News - 🎮 Django Is Now a Video Game Framework - Jan 2nd 2026
News DSF member of the month - Clifford Gama Clifford Gama, DSF member and Triage and Review contributor, merged several Django core PRs and investigates performance and WeasyPrint PDF generation improvements. djangoproject.com PyPI in 2025: A Year in Review - The Python Package Index Blog PyPI strengthened security and organization features in 2025, adding trusted publishing, attestations, improved 2FA, malware response, and organization management enhancements. pypi.org Updates to Django Today, "Updates to Django" is presented by Raffaella from Djangonaut Space! 🚀 Last week we had 19 pull requests merged into Django by 15 different contributors - including 5 first-time contributors! Congratulations to Duane Hilton, Ankan Giri, guro-Ishiguro, Sean Reed, and Yilei for having their first commits merged into Django - welcome on board! News in Django 6.0: Fixed a regression where path() routes defined using gettext_lazy() failed to resolve correctly (#36796). Fixed a regression that caused bulk_create() to crash when introspecting the connection on SQLite (#36818). Fixed a crash caused by infinite recursion when calling repr() on an unevaluated django.utils.csp.LazyNonce instance (#36810). Fixed a bug where management command colorized help (introduced in Python 3.14) ignored the --no-color option and the DJANGO_COLORS setting (#36376). Fixed a visual regression for admin form … -
Django On The Med: A Contributor Sprint Retrospective
A personal retrospective on Django On The Med, three months later. From the first idea to the actual contributor sprint, and how a simple format based on focused mornings and open afternoons created unexpected value for people and the Django open source community. -
Django News - Happy Holidays and 95% there! - Dec 26th 2025
News Hitting the Home Stretch: Help Us Reach the Django Software Foundation's Year-End Goal! Since last week, the Django Software Foundation has reached 95% of its goal, and I appreciate your consideration in helping it meet the remaining 5%. djangoproject.com DjangoCon Europe - Call for Proposals The Call for Proposals (CFP) for DjangoCon Europe 2026 is officially open! This event will be in Athens, Greece, from April 15–19, 2026. Submission deadline: Sunday, February 8, 2026 (end of day) djangocon.eu Updates to Django Today, "Updates to Django" is presented by Raffaella from Djangonaut Space! 🚀 Last week we had 16 pull requests merged into Django by 15 different contributors - including 4 first-time contributors! Congratulations to H. White, Krishnaprasad MG, Jonathan Biemond, and Nilesh Pahari for having their first commits merged into Django - welcome on board! News in Django 6.0: Fixed a regression that prevented changing the name of a ManyToManyField from taking effect when applying migrations. (#36800) Fixed a regression where querystring mishandled multi-value QueryDict keys, both by only preserving the last value and by incorrectly handling None values (#36783). News in Django 6.1: The m2m_changed signal now receives a raw argument. parse_duration() now supports ISO 8601 durations expressed … -
From Bootcamp to Project Manager - Keanya Phelps
🔗 LinksBehind the Curtain as a Conference Chair blog postDjangoCon US Conference Chair Opening Remarks and Closing Remarks at DjangoCon USPG Data 2026 ConferenceDjangoCon US: Call for Venue Proposals 2027-28📦 Projectsdjango-crontask📚 BooksJust Use Postgres bookUntil the End of Time book🎥 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. -
My 2026 year in review
As I prepared this post I realised I a lot more had happened this year than I thought, so without further a do here are the highlights I remember. The new year started strong with me achieving my goal of writing a blog post every week day for a year. Since then I have scaled it back to approxmiately weekly, but there have been longer gaps over holidays or when worked was a bit too busy. It was a definite bonus to get 9 of my articles featured in Django News this year! The other content production I have been doing this year is a short podcast called "In Progress" which is a public-ish show about what I am working on week to week, I do plan to make this public at some point! My big focus this year has been building an initial build for a startup I am co-founding. It's in the financial services space and I have a deadline for the end of January 2026. It's taken much longer than I would have liked, partly due to the table stakes features that were required, partly due to only being able to work part-time on it for most … -
Django News - New Django Software Foundation Board and Year-End Fundraiser - Dec 19th 2025
News Hitting the Home Stretch: Help Us Reach the Django Software Foundation's Year-End Goal! Django Software Foundation requests year-end donations to close a $300,000 fundraising goal, supporting an expanded Fellows program, security work, releases, and community events. djangoproject.com Introducing the 2026 DSF Board Django Software Foundation announced the 2026 board and officers, welcomed the newly elected directors, thanked the outgoing members, and linked the board minutes and contact information. djangoproject.com DjangoCon US 2026 CFP is open! DjangoCon US 2026 will take place September 14–18 in Chicago (talks September 14–16, sprints September 17–18), and the Call for Proposals is open now with a submission deadline of March 16, 2026 at 11:00 AM CDT. pretalx.com PEP 8107 – 2026 Term Steering Council election The results of the 2026 Python Steering Council election were published in PEP 8107, and the five winners are Pablo Galindo Salgado, Savannah Ostrowski, Barry Warsaw, Donghee Na, and Thomas Wouters. Congratulations to all of them on being elected to guide Python’s development for the coming term. python.org Releases Python 3.15.0 alpha 3 Python 3.15.0 alpha 3 is now available as an early developer preview, highlighting features like a new statistical sampling profiler, UTF-8 as the default encoding, a … -
More adventures in building template components in Django
I discovered a new pattern in using one of the latest features from Django 6.0, template-partials. I probably need to give Claude some credit along with Tailwind Plus for the initial HTML. Earlier this week I was building out a modal pattern for the latest project I am building. You click a button, a modal pops up and loads a form via HTMX. Then submit the form and modal closes with the response triggering other HTMX updates on the page. I was building this out in tandem with Claude Code, with the starting point being a modal from Tailwind Plus which I thought only included the modal, but they also included the button to trigger the modal as well. Well the AI took this and ran with and essentially ended up with a Django template that looks like this: {% partialdef trigger %} <button hx-get...>...</button> {% endpartialdef trigger %} {% partialdef modal %} <dialog> <form> ... </form> </dialog> {% endpartialdef modal %} I don't think I would have ever thought to have included the button section as a partial in this context, but I like the results since both can be used with the include tag at different points and … -
Rich text editors: How restrictive can we be?
Rich text editors: How restrictive can we be? How restrictive should a rich text editor be? It’s a question I keep coming back to as I work on FeinCMS and Django-based content management systems. I published the last blog post on django-prose-editor specifically in August 2025, Menu improvements in django-prose-editor. The most interesting part of the blog post was the short mention of the TextClass extension at the bottom which allows adding a predefined list of CSS classes to arbitrary spans of text. In the meantime, I have spent a lot of time working on extensions that try to answer this question: the TextClass extension for adding CSS classes to inline text, and more recently the NodeClass extension for adding classes to nodes and marks. It’s high time to write a post about it. Rich Text editing philosophy All of this convinced me that offering the user a rich text editor with too much capabilities is a really bad idea. The rich text editor in FeinCMS only has bold, italic, bullets, link and headlines activated (and the HTML code button, because that’s sort of inevitable – sometimes the rich text editor messes up and you cannot fix it other than … -
Django News - DjangoCon Europe 2026 CFPs - Dec 12th 2025
News DjangoCon Europe 2026: Call for Proposals Submit talk proposals for DjangoCon Europe 2026 in Athens by February 8, 2026, to present technical or community-focused Django and Python topics. djangocon.eu Python Insider: Python 3.14.2 and 3.13.11 are now available! Python 3.14.2 and 3.13.11 release expedited maintenance updates fixing regressions in multiprocessing, dataclasses, regex and insertdict plus security fixes including CVE-2025-12084. blogspot.com Django Software Foundation Django Code of Conduct Transparency Report 2025 The Django Software Foundation Code of Conduct working group published a 2025 transparency report detailing four reports, two suspensions, process changes, and new liaisons. djangoproject.com Online Community Working Group GitHub repo and project Django Online Community Working Group launched a GitHub repository and project to centralise, track, and triage suggestions across Django's online platforms. djangoproject.com Django Fellow Reports Fellow Report - Natalia Big week. I issued security releases early in the week, and then the Django 6.0 final release right after. Getting both out the door smoothly took most of my focus, and it felt good to see them completed. The flow of LLM driven contributions is becoming hard to ignore, across PRs, tickets, and even security reports. Skynet would be proud (?). This week was also heavy on … -
Django 6.0 - Natalia Bidart
Django 6.0 Released blog post and release notesDeprecations Don't Work for Python LibrariesDjango Forum - Should We Adjust Django's Versioning?django-repl and django-boltTemplate Fragments essay on HTMX.orgdjango-tasksWhat's New in Django 6.0 by Adam JohnsonDjangoCon Europe 2024 | Empowering Django with Background WorkersSponsorThis 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! -
Hello world!
Welcome to WordPress. This is your first post. Edit or delete it, then start writing! -
Django: implement HTTP basic authentication
Previously, we covered bearer authentication within HTTP’s general authentication framework. In this post, we’ll implement basic authentication, where the client provides a username and password. To recap, HTTP’s general authentication framework defines a general scheme for authentication: Clients may provide an authorization request header that contains a credential. Servers validate the header and respond with either the requested resource or a 401 (Unauthorized) status code that includes a www-authenticate response header advertising what authentication schemes are supported. Basic authentication is an authentication scheme within the framework that browsers natively support. When accessing a page protected with basic authentication, browsers show a login prompt to the user, like this one in Firefox: After the user enters their credentials, the browser sends a new request with the authorization header set to the string Basic <credentials>, where <credentials> is a base64-encoded string of the form <username>:<password>. The server can then validate the credentials and respond accordingly. Basic authentication is not the best user experience, as the browser login dialog cannot be styled and password managers cannot autofill it. It also requires some security considerations, as the credentials are sent with every request to the protected resource, increasing the risk of exposure, but if … -
Weeknotes (2025 week 49)
Weeknotes (2025 week 49) I seem to be publishing weeknotes monthly, so I’m now thinking about renaming the category :-) Mosparo I have started using a self-hosted mosparo instance for my captcha needs. It’s nicer than Google reCAPTCHA. Also, not sending data to Google and not training AI models on traffic signs feels better. Fixes for the YouTube 153 error Simon Willison published a nice writeup about YouTube embeds failing with a 153 error. We have also encountered this problem in the wild and fixed the feincms3 embedding code to also set the required referrerpolicy attribute. Updated packages since 2025-11-04 django-sitemaps 2.0.2: Uploaded a new release which includes a wheel build. Rebuilding the wheel all the time when creating new container images was getting annoying. The code itself is unchanged. django-prune-uploads 0.3.1: The package now supports pruning a storage backed by django-s3-storage efficiently. I have also looked at django-prune-media but since the package uses the storage API instead of enumerating files using boto3 directly it’s unusably slow for my use case. feincms3-forms 0.6: Much better docs and a new way to reference individual form fields in custom templates. django-json-schema-editor 0.11: Switched from JSON paths to jmespath instances. Made the JSON … -
Django News - Django 6.0 released! - Dec 5th 2025
News Django 6.0 released Django 6.0 introduces template partials, a background task framework, Content Security Policy support, and a modern Email API based on EmailMessage. djangoproject.com 2026 DSF Board Election Results Jacob Kaplan-Moss, Priya Pahwa, and Ryan Cheley were elected to two year terms, joining continuing directors to form the 2026 DSF Board. djangoproject.com Releases Django security releases issued: 5.2.9, 5.1.15, and 4.2.27 Django issues security releases 5.2.9, 5.1.15, and 4.2.27, addressing a FilteredRelation SQL injection on PostgreSQL and an XML serializer DoS vulnerability. djangoproject.com Python 3.14.1 is now available! Python 3.14.1 is a maintenance release that adds deferred annotation evaluation, free-threaded support, an experimental JIT, and numerous bug fixes affecting Django performance and typing. python.org Python 3.13.10 is now available, too, you know! Python 3.13.10 is released as the tenth maintenance update since 3.13.9, delivering around 300 bug fixes, build improvements, and documentation updates. python.org Wagtail 7.2.1 Wagtail 7.2.1 delivers several performance and usability fixes for document and image listings, improves reference index efficiency, and includes minor maintenance updates. github.com Python Software Foundation Python Software Foundation News: Sovereign Tech Agency and PSF Security Partnership Sovereign Tech Agency funds €86,000 to PSF for CPython archive fuzz testing and PyPI account … -
Django: what’s new in 6.0
Django 6.0 was released today, starting another release cycle for the loved and long-lived Python web framework (now 20 years old!). It comes with a mosaic of new features, contributed to by many, some of which I am happy to have helped with. Below is my pick of highlights from the release notes. Upgrade with help from django-upgrade If you’re upgrading a project from Django 5.2 or earlier, please try my tool django-upgrade. It will automatically update old Django code to use new features, fixing some deprecation warnings for you, including five fixers for Django 6.0. (One day, I’ll propose django-upgrade to become an official Django project, when energy and time permit…) Template partials There are four headline features in Django 6.0, which we’ll cover before other notable changes, starting with this one: The Django Template Language now supports template partials, making it easier to encapsulate and reuse small named fragments within a template file. Partials are sections of a template marked by the new {% partialdef %} and {% endpartialdef %} tags. They can be reused within the same template or rendered in isolation. Let’s look at examples for each use case in turn. Reuse partials within the same … -
Safe Django database migrations on Coolify
Deploying Django on Coolify has been fantastic so far: automatic builds, atomic releases, ephemeral containers, and simple scaling. In a previous article I explained how I set up my Django projects in Coolify, including the fact that migrations run as part of the build step. This works great for most migrations: failures abort the build, no partial deploys, no surprises. But it breaks down for one specific class of migrations: schema-destructive migrations, i.e. migrations that remove fields, drop tables, rename columns, or otherwise make the existing running code incompatible with the current database schema. Coolify builds your new container, applies the migrations, and only afterwards starts replacing the running container with the new one. During that in-between period (usually 1–2 minutes depending on your image size) your old Django container is still running code that expects the old schema. If a column has just been removed… boom: 500 errors for users until the new container becomes healthy and takes over. Why you can’t just move the migration step Your first instinct might be to change when the migrations run. Let’s look at some alternatives and why they don’t solve the root problem. Strategy A: the post-deploy hook You could remove … -
Safe Django migrations without server errors
One of the best features of modern container-based deployment platforms (Coolify included) is that they give you zero downtime rolling updates out of the box. When you push code, a new image is built, migrations run, and traffic only shifts to the new container when it’s healthy. However, this convenience creates a hidden trap for Django developers. Because Coolify performs a rolling update, there is a window of time (usually 1–2 minutes) where both the old and new versions of your application are running simultaneously against the same database. This works fine if you are just adding a new table. But if you run a destructive migration, like removing a field or renaming a column, your deployment becomes a race condition. The new container runs the migration, the database schema changes, and your old container (which is still serving live traffic) immediately starts throwing 500 errors because it’s trying to query a column that no longer exists. This isn’t a limitation of Coolify; it is a fundamental constraint of rolling deployments. Heroku, Render, Fly.io, ECS, Kubernetes — anything that swaps containers while the old version is still serving traffic has the same constraint. You cannot fix this by changing where … -
Django News - Sales and AI in the Real World - Nov 28th 2025
News Python Black Friday & Cyber Monday sales (2025) More Black Friday and Cyber Monday deals for Python and Django developers! LearnDjango has 50% off courses too! treyhunner.com Django Software Foundation DSF member of the month - Akio Ogasahara Akio Ogasahara, DSF member of the month, contributes extensive Japanese documentation translation, advocates Django admin for operations and highlights Django security alongside AI assisted development. djangoproject.com Python Software Foundation PyPI and Shai-Hulud: Staying Secure Amid Emerging Threats PyPI warns developers about the Shai-Hulud npm supply chain campaign, revoking exposed tokens and recommending trusted publishers, CI workflow audits, and token rotation. pypi.org Wagtail CMS News Wagtail 7.2.1 Wagtail shipped several fixes that improve userbar previews, document and image handling, search stability, and reference index performance, along with a small search test cleanup. github.com Sponsored Link 1 Sleep tight with HackSoft and our Django services! While you recharge, we keep your software running smoothly - secure, stable, and ready for tomorrow. We are HackSoft - your Django development partner, beyond code. Learn more! hacksoft.io Articles Django: implement HTTP bearer authentication Shows how to implement simple single token HTTP Bearer authentication in Django views with secure compare, unit tests, and a reusable decorator. adamj.eu …