Django community: RSS
This page, updated regularly, aggregates Community blog posts from the Django community.
-
Weeknotes (2025 week 21)
Weeknotes (2025 week 21) I have missed two co-writing sessions and didn’t manage to post much outside of that, but let’s get things back on track. django-prose-editor 0.12 The last weeknotes entry contains more details about the work of really connecting Tiptap extensions with server-side sanitization. 0.12 includes many improvements and bugfixes which have been made during real-world use of the prose editor in customer-facing products. I’m not completely happy about the way we’re specifying the editor configuration and haven’t been able to settle on either extensions or config as a keyword argument. The field supports both ways, at least for now. It’s probably fine. Releases django-auto-admin-fieldsets 0.2: I wrote a blog post here: Customizing Django admin fieldsets without fearing forgotten fields django-debug-toolbar 5.2: This release contains the second half of improvements from Djangonaut Space session four where I helped out as a Navigator. The toolbar properly supports code highlighting in dark mode, sanitizes request variables better, allows customizing redirects, supports projects using django-template-partials and more! FeinCMS 25.5.1: The first FeinCMS release of 2025. We’re still maintaining the project and fixing bugs! django-prose-editor 0.12: See above. django-json-schema-editor 0.4.1: Fixes much too small checkboxes when used inside tables. -
Python: a quick cProfile recipe with pstats
Python comes with two built-in profilers for measuring the performance of your code: cProfile and profile. They have the same API, but cProfile is a C extension, while profile is implemented in Python. You nearly always want to use cProfile, as it’s faster and doesn’t skew measurements as much. By default, cProfile’s CLI profiles a command and displays its profile statistics afterwards. But that can be a bit limited, especially for reading large profiles or re-sorting the same data in different ways. For more flexibility, cProfile can instead save the profile data to a file, which you can then read with the pstats module. This is my preferred way of using it, and this post covers a recipe for doing so, with a worked example. The recipe First, profile your script: $ python -m cProfile -o profile <script> [args] Replace <script> with the path to your Python file, and [args] with any arguments you want to pass to it. cProfile will run your script under its profiling machinery, saving the results to a file called profile, as specified by the -o option. Second, view the profile file using pstats: $ python -m pstats profile <<< $'sort cumtime\nstats 1000' | less … -
Django News - Django News is at PyCon US this weekend! - May 16th 2025
Introduction Django News is at PyCon US this weekend! Jeff and Will are at PyCon US in Pittsburgh this weekend and would love to meet fellow Django enthusiasts. Drop by the DSF or JetBrains booth to say hello and connect with the many Django community members and DSF folks who will be around all weekend. Django Newsletter News Google Summer of Code 2025 - Django Projects Three projects out of many worth proposals were accepted. Improvements to Django admin, adding django-template-partials to core, and automating processes in the Django contribution workflow. withgoogle.com Waiting for Postgres 18: Accelerating Disk Reads with Asynchronous I/O Postgres 18 introduces asynchronous I/O with new io_method options (worker and io_uring), which can double or triple read performance in high-latency cloud environments. pganalyze.com Django Software Foundation Simon Charette is the DSF member of the month Simon Charette is a longtime Django contributor and community member. He served on the Django 5.x Steering Council and is part of the Security team and the Triage and Review team. djangoproject.com Updates to Django Today 'Updates to Django' is presented by Abigail Afi Gbadago from the DSF Board and Djangonaut Space!🚀 Last week we had 10 pull requests merged into Django … -
My second DjangoCon Europe
Well I have been meaning to write this for over 2 weeks now, but better late than never! Towards the end of April 2025 I attended the DjangoCon Europe conference and Sprints and it was brilliant and exhausting all in one go. Let's begin with the travel there, I decided to join those doing the SailRail for a relaxed train ride and crossing the sea to Dublin. This was great as I managed to make some use of the day (work and a blog post) while travelling as well as having some travel companions in the form of Thibaud, Sage, Tom & Daniele. The next day kicked off the conference with an excellent keynote from Sarah Boyce, and other talks followed thoughout the next 2 days. Databases was a big theme along with community engagement and HTMX. However for me it was walking into the room and meeting folks from the community in person, that I have interacted with online for the past couple of years. This was also coupled with great conversations with friends new & old (mostly around making Django better). I also plucked up the courage and gave a lighting talk on the last day about my … -
Pygrunn: how to solve a python mystery - Aivars Kalvāns
(One of my summaries of the 2025 pygrunn conference in Groningen, NL). Aivars pointed at https://www.brendangregg.com/linuxperf.html as a good overview of linux tools A good start is the /proc filesystem, you can use it to gather information on processes, for instance to grab the environment used by a process: $ cat /proc/1234455/environ || tr '\0' '\n' The files/sockets used by a specific process: $ ls /proc/12345/fd/* You might have an unfindable file that takes up lots of space (like a logfile that has been deleted from a directory, but that is still open in some program). The command above will have (deleted) next to deleted files, so you can search for that string in the output to find the process that still has such a big file open. Another handy tool: strace, it traces linux system kernel calls. You don't even need root access if you just want to trace your own processes. An example command: $ strace -f -ttt -o output.txt -s 1024 -p <PID> $ strace -f -ttt -o output.txt -s 1024 -p your-new-process.sh If your code does a system call ("read something from somewhere"), strace prints both the start and the end of the call. So you … -
Pygrunn: team alignment, enterprise design power - Edzo A. Botjes
(One of my summaries of the 2025 pygrunn conference in Groningen, NL). He helps startups to design their business. He's got more info at https://www.edzob.com/page/enterprise/ , an "enterprise design cheat sheet". He was a consultant for a long time and started noticing patterns. He's now in education/research and he's focused on culture. According to Osterwalder, success = value proposition + uniqueness + business model + timing + team alignment. In Edzo's experience, the team alignment is often a core problem. As a person, you have a skill set (behaviour and capabilities). As a team, you have a collective toolset: (structure, processes, data and tech). Those two are the tangible stuff. Intangible is your mindset (attitude and motivation) as a person, and the culture as a team. UX is a social contract between an app and the user. There's a social contract behind the interactions within the company. A culture. How do you want to collaborate? How you collaborate defines what you're going to be building. Conway's law. (He mentioned his talk of last year about this subject). His wife did a PhD about the meaning behind fairy tales. For him, as a technical person, the idea of having multiple meanings … -
Pygrunn: django template LSP, smarter completion for django templates - Kees Hink
(One of my summaries of the 2025 pygrunn conference in Groningen, NL). Henk works at four digits, a long-time django shop. He had a poll at the start about peoples' favourite editor. The top three: pycharm 38%, vscode 37%, neovim 11%. (Bugger, my favourite, emacs, is not in the top three). Code completion is nice. Modern editors are real handy for this with good support for django and python. But... for django templates, it is missing. No auto-completion for {% bl to {% block. And also no knowledge of the available variables and attributes. Pycharm is an exception, it has django language support and completion for the standard django template tags and also auto-complete in case you have class-based views. He showed us django template LSP: https://github.com/fourdigits/django-template-lsp, wich implements similar functionality for most other editors. It also picks up custom template tags. Docker support! It can find your template tags and code inside a docker image. When something is not picked up, you can add a comment with a type hint. You can install it from vscode, the name is djlsp. You can build such a LSP, Language Server Protocol, yourself. LSP allows a client (your IDE) to interface with … -
Pygrunn: cloud native geospatial formats for field boundaries - Ivor Bosloper
(One of my summaries of the 2025 pygrunn conference in Groningen, NL). Cloud native geospatial file formats: Geospatial data: you have raster data (= images) and vector data. And point data. Raster data: geotiff, png, jpg. Vector: (shapefiles), gpkg, geoparquet. Points: gpkg, geoparquet. Cloud native? Let's look at geotiff for instance. Just the old .tiff format, so a raster of pixels with some metadata. A geotiff has metadata like extent, projection, etc. There is a cloud native variant, cloud optimized geotiff. You have tiles, so the big image is subdivided into tiles for easier/cheaper/faster loading. There are also multiple versions of the image at various "zoom levels". The metadata is always at a fixed place in the file, right at the front or at the back. Such a cloud optimized format means that it is optimized for remote geospatial access patterns. The way it happens is with "http range requests". After reading the metadata for the file, the algorithm knows which parts of the big file to request from the server with such a http range request. He wanted to do the same for vector data. An approach is GeoParquet. Parquet is a bit of a "csv format", simplified. For … -
Pygrunn: python on a tractor - Wieneke Keller, Sebastian Lenartowicz
(One of my summaries of the 2025 pygrunn conference in Groningen, NL). How to become an apple farmer in 5 minutes: You want mid-size apples, as they fetch the best price. You want blossom on your tree, but not too much. Otherwise the tree has to divide its water and nourishment over more apples, which makes them smaller... They work at aurea imaging, maker of "treescout". The treescout is a device/camera on top of a tractor that drives along the apple trees in an orchard. The device detects the tree, blossoms and other attributes of the tree. The first use case: blossom thinning to aim at the right size of apples. Blossom thinning happens with a sprayer. The blossom blossoms for just two or three weeks. The first season they tried their project was educational. Lots or problems :-) GPS tracks that were not straight. Detected trees were not in the right location. Etcetera. Some of the challenges: It is on a vehicle, so limited power. It is on a farm, so very limited or no connectivity. Agricultural standards are actually from the maritime industry. GPS that is accurate within a few meters is fine, there. But not detailed enough … -
Pygrunn keynote: Homo ludens, python and play - Daniele Procida
(One of my summaries of the 2025 pygrunn conference in Groningen, NL). Organizing a conference is a weird mix between it-is-not-my-job and it-is-a-lot-of-real-work. When Daniele Procida learned python 16 years ago, he was often told that learning python is fun! And it is easy! Often when people say it is fun and easy, that you should be suspicious. It actually wasn't fun. There was lots of satisfaction, though. Solving problems is nice. He didn't want to have fun and he didn't want to be a great programmer: He just wanted to solve problems! Fun, playful... Python early on had a bit of playfulness. Named after Monty Python, an old BBC comedic television series. Nowadays most people haven't seen Monty Python on television and actually discover it through the programming language. How does an Indonesian teenager react to the unknown Monty Python jokes? Same with python-the-snakes. Lots of book with snakes on the cover. Some playful, some aggressive. Some with dripping venom (that doesn't fit with a constricting type of snake...). But try talking about "python" in African countries where Pythons actually are a menace... His definition of humor: the surprising violation of an expectation of congruity. A momentary re-ordering of … -
Event Sourcing - Chris May
Everyday Superpowers*Chris on Fosstodon and BlueSkyWhy I Finally Embraced Event Sourcing and You Should TooDjangoCon US 2023: HTML-ivating your Django web app's experience with HTMX, AlpineJS, and streaming HTMLSponsorThis 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! -
My DjangoCon Europe 2025
A summary of my experience at DjangoCon Europe 2025 told through the posts I published on Mastodon during the conference. -
Django News - Python 3.14.0 beta is here - May 9th 2025
News Python 3.14.0 beta 1 is here! Python 3.14.0 beta1 brings deferred annotation evaluation, template string literals, Zstandard compression support, zero-overhead debugging, improved diagnostics, and invites Django projects to test compatibility. blogspot.com Python Software Foundation Names New Deputy Executive Director Python Software Foundation promotes Loren Crary to Deputy Executive Director, expanding her strategic planning, budgeting, sponsorship revenue development, and PyCon US support. blogspot.com Announcing Python Software Foundation Fellow Members for Q1 2025! 🎉 PSF announces Q1 2025 Fellows, honoring outstanding Python community leaders and mentors who drive library development, education, and ecosystem growth. blogspot.com Django Software Foundation New Features GitHub repo and project Django is experimenting with a new GitHub repository specifically designed to manage feature ideas and their progression. This is a significant shift away from the previous process of posting those to the forum. djangoproject.com Updates to Django Today 'Updates to Django' is presented by Abigail Afi Gbadago from the DSF Board and Djangonaut Space!🚀 Last week we had 7 pull requests merged into Django by 6 different contributors - including a first-time contributor! Congratulations to 신우진 for having their first commits merged into Django - welcome on board!🎉 This week’s Django highlights 🌟 A bug in composite … -
Django: model field choices that can change without a database migration
Adam Hill posted a question on Mastodon: he wants a model field that uses choices that doesn’t generate a database migration when the choices change. This post presents my answer. First, we’ll recap Django’s default behaviour with choice fields, a solution with callable choices, and the drawbacks. The default behaviour Take this model definition: from django.db import models class Colour(models.IntegerChoices): TEAL = 1, "Teal" class Flower(models.Model): colour = models.IntegerField(choices=Colour.choices) The enumeration type Colour is used for the choices of the model field Flower.colour. Colour.choices returns a list of tuples that contain values and labels. Run makemigrations to create the initial migration for this model: $ ./manage.py makemigrations example Migrations for 'example': example/migrations/0001_initial.py + Create model Flower And check the generated migration: from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name="Flower", fields=[ ("id", models.BigAutoField(...)), ("colour", models.IntegerField(choices=[(1, "Teal")])), ], ), ] The colour field definition includes the serialized list with one choice: (1, "Teal"). Then, say we make a change to Colour: class Colour(models.IntegerChoices): TEAL = 1, "Teal" + PUCE = 2, "Puce" makemigrations detects the change and generates a new migration: $ ./manage.py makemigrations example Migrations for 'example': example/migrations/0002_alter_flower_colour.py ~ Alter field … -
Django News - Template Tricks, DjangoCon EU, and Community Wins - May 2nd 2025
News Djangonaut Space: Taking a Session Break Djangonaut Space is temporarily pausing its mentoring sessions to develop stronger, more sustainable processes and is calling on Django developers to contribute code, volunteer, and donate. djangonaut.space Django Fellow Report Django Fellow Report - Sarah Boyce Sarah was at DjangoCon Europe last week, where she gave a keynote talk on the opening day. She also triaged 4 tickets, reviewed 6 more, and handled several miscellaneous items. Our Fellows do incredible work to so that Django can continue to thrive. djangoproject.com Django Fellow Report - Natalia Bidart 10 tickets triaged, 4 tickets reviewed, 2 authored, plus other tasks. Our Fellows write weekly notes on their work, and it's worth taking a glance to see the incredible work they do, mainly behind the scenes, to keep Django running smoothly. djangoproject.com Updates to Django Today 'Updates to Django' is presented by Abigail Afi Gbadago from the DSF Board and Djangonaut Space!🚀 Last week we had 14 pull requests merged into Django by 13 different contributors - including 3 first-time contributors! Congratulations to 9r0k, Matti Pohjanvirta and dbogar89 for having their first commits merged into Django - welcome on board! 🎉 This week’s Django highlights 🌟 The … -
Algorithms: Learning ones Learnings
When I studied algorithms more than twenty years ago, I saw their general usefulness, but since then, I have never had to use them in the real world because they had already been implemented by database management services or built-in functionalities of most programming languages that I used. Interviewer: Can you sort this list by size? Interviewee: Absolutely. /types confidently.../ l.sort() There came a time when I had to remind myself of sorting algorithms. At 1st things 1st, I was about to implement a feature that lets users prioritize their options by comparing them two at a time. I thought that the Bubble Sort algorithm would fit perfectly. So, I built the UI using ReactJS and Django for the backend to let users compare options and sort their priorities. However, I soon noticed a problem: for longer lists, the process became quite time-consuming for users. One day, I remembered something about algorithm complexity (also known as Big O Notation) and realized that Bubble Sort isn't the most efficient choice for this task. In computer science, Big O notation describes how the performance of an algorithm grows relative to the size of the input. It's usually written like O(value), where value … -
DjangoCon Europe 2025 Recap
DjangoCon Europe 2025DjangoCon Europe on YouTube - subscribe to be notified when talks are postedGet Started With AI Assistant in PyCharm neapolitan - Quick CRUD views for DjangoDjango Social Django Events Foundation of North America -
Django News - Revamp Your Django Admin and Supercharge Search - Apr 25th 2025
News See you at PyCon US in Pittsburgh! Django invites community members to visit and volunteer at its PyCon US 2025 booth in Pittsburgh for stickers and project engagement. djangoproject.com 2025 PSF Board Election Schedule Change Starting in 2025, PSF will move board election timelines to August and September to relieve PyCon US planning pressures and give candidates more campaign time. blogspot.com Django Software Foundation Django Admin Theme Roundup 2025 Explore a curated roundup of customizable Django Admin themes like Dracula, Jazzmin, Unfold, Simple UI and others for refreshed backend UIs. djangoproject.com Wagtail CMS Check yourself before you wreck yourself with vibe coding AI-powered vibe coding accelerates app development but demands rigorous security practices like secret management, input validation, and leveraging frameworks such as Django for safer production deployments. wagtail.org Hot takes are making the planet hotter (and we can do something about it) 🌍 Wagtail-driven Django sites can cut carbon footprints by adopting WebP/AVIF images, greener hosts, responsible AI, dark mode, and cleaning up old content. wagtail.org Sponsored Link 1 The #1 Django Podcast Since 2019, Django Chat is a biweekly podcast covering the people and news behind Django. Hosted by former Django Fellow Carlton Gibson and LearnDjango founder … -
Chicago Like a Local: Part 2
Chicago Like a Local: Hidden Gems & Unique Experiences (Part 2) DjangoCon US 2025 is getting closer, and while we've covered some classic must-see spots in Part 1, there’s so much more to explore beyond the typical tourist attractions. If you’re looking for unique experiences, quirky hidden gems, and places where locals actually hang out, this guide is for you. Unique Eats & Unexpected Foodie Finds Chicago’s food scene goes beyond deep-dish pizza and hot dogs. Here are some lesser-known but absolutely amazing spots to check out: International Flavors Demera Ethiopian Restaurant – Located in Uptown, Demera is the go-to spot for flavorful, communal Ethiopian dining. Try the messob platter for an authentic experience. Korean Chicken at Crisp – Forget traditional fried chicken—Crisp in Lakeview serves up perfectly crispy, saucy, and flavorful Korean-style wings that will change your life. Speakeasies & Hidden Bars Looking for a more intimate, unique nightlife experience? Check out these hidden gems: The Violet Hour – Tucked behind an unmarked door in Wicker Park, this James Beard award-winning cocktail lounge is a must for craft cocktail lovers. The Drifter – Hidden beneath the Green Door Tavern, this speakeasy features a rotating menu of cocktails presented on … -
Pycon.de: community building and task automation - Cosima Meyer
(One of my summaries of the 2025 pycon.de conference in Darmstadt, DE). Full title: code & community: the synergy of community building and task automation Cosima organizes PyLadies and R-Ladies events. Visibility is important. You have to be visible to be noticed. Time is also important: you have to put in work to create good content. But you also want to have time for other things. So she thought about creating an "automated megaphone" to help her and other PyLadies members be more visible. She created the pyladies bot on bluesky and mastodon. It regularly shares portraits of "amazing women in tech". And it reposts messages when tagged or mentioned. It also monitors blogs and posts about them. See https://github.com/cosimameyer/awesome-pyladies-blogs The bot runs as a github action "cron job". She started using google's "gemini" LLM to create short summaries of the blog posts to make it more likely for people to click on it. She picked a cheap, small model as that was good enough. In addition she does an extra automated check on harassment, dangerous content, etc. Lessons learned: You can use powerfull LLMs to enhance your applications. Integrating modern LLMs is straightforward and easy. No need to go … -
Pycon.de: using python to enter the world of microcontrollers - Jens Nie
(One of my summaries of the 2025 pycon.de conference in Darmstadt, DE). A microcontroller is a combination of CPU, memory, storage and IO on a single cheap chip. He showed: ESP32, STM32, raspberry pi 2350. The lines can be a bit blurred. Raspberry pi variants that are almost a normal computer, for instance. Computer: multi-user, multi-tasking, always ready to do something. Microcontroller: single task. Can sleep when it doesn't have to do the task. So: low power consumption, perhaps even suitable for battery operation. Years and years ago, microcontrollers meant resources measured with k. Now it is M or even G. From 4 kB to 4 GB... For microcontrollers you have MicroPython. Very simple to learn and it feels much the same as regular python. Libraries like "requests" and "numpy" are available. He demoed how he set up monitoring of his power consumption at home with microcontrollers. Photo explanation: random picture from Darmstadt (DE) -
Pycon.de: FastHTML vs. Streamlit - the dashboarding face-off - Tilman Krokotsch
(One of my summaries of the 2025 pycon.de conference in Darmstadt, DE). Streamlit is used a lot for dashboards. Fasthtml is a new contender. He demoed both of them at the same time (well done, btw, one of the better comparisons I've seen!), I wrote down some notes: Streamlit runs through your python file and puts stuff on your screen (like a "h1") immediately. So you see the page being build up, which tells the user something is happening. Fasthtml only sends over the page once it is fully ready. Fasthtml is based on htmx! So you can put placeholders on the screen that are filled in later with htmx. This helps putting something on the screen right away. There's a fh_plotly library to create plotly graphs. In fasthtml, it is fast to react to clicks and add something to the page. Only the new element is calculated, the rest stays the same. In streamlit, the whole page is calculated again, which is expensive. You can speed it up a bit with caching. Adding login functionality is easier in fasthtml, especially as the layout of the page is more explicit. You can have "components" in the layout and you can … -
Pycon.de keynote: the future of AI: building the most impactful technology together - Leandro von Werra
(One of my summaries of the 2025 pycon.de conference in Darmstadt, DE). Can AI be build in the open? Especially LLMs. Key components are data, compute, pretraining, posttraining, scaling. Can these components be build in the open? As open source? Many models are closed, like claude, gemini, OpenAI o1. There are models with open model weights (but a black box otherwise): LLaMA, deepseek, Mistralai. And you have fully open models: granite, bloom, olmo, starcoder2. Why would we want to do it? Doing it in the open? Transparency on pretraining. What data was used? How was my data used. How was the data filtered? This addresses biases, attribution and trust. Transparency on alignment. Models are aligned for safety/values. Which values are in the model? Are values global? In closed models, there are only a few people that define how the model behaves, but it has lots of influence, potentially world-wide. Deepseek-R1 is not open source, but at least the weights are open. This helped shift the discussion a lot, as previously all the big ones were closed api-only models. At hugging face they try to make a fully open version, open-R1. Open is closing the gap. When GPT-4 came out, it … -
Pycon.de: streamlit app optimization in AWS - Darya Petrashka
(One of my summaries of the 2025 pycon.de conference in Darmstadt, DE). Full title: you don’t think about your streamlit app optimization until you try to deploy it to AWS Streamlit is a quick way to show your models/data to stakeholders. She once made a streamlit app to exercise writing Japanese characters. It used some character recognition model. But... the way streamlit works, it normally downloads the model every single time. For some local testing, it is probably OK, but if you put it in production... In production, network traffic might cost money. Solution? You can cache it with streamlit, but you can also download it when building the docker image and store it inside the image and load it from there. On to authentication. You can handle everything yourself as data scientist: login widget, auth logic, user privs, etc. You can also use an external provider like Amazon Cognito. Then you only have to hook up cognito in your code, but the OPS engineer has to set up cognito for you. On to security. For all of them you'll need the OPS engineer, probably. Set up https with Route 53 and TLS certificates. Configure CloudFront to protect against DDoS … -
Pycon.de keynote: Chasing the dark universe with euclid and python - Guadalupe Canas Herrera
(One of my summaries of the 2025 pycon.de conference in Darmstadt, DE). Full title: chasing the dark universe with euclid and python: unveiling the secrets of the cosmos. Guadalupe works on the ESA Euclid mission. Euclid tries to understand the universe and especially its history: how did it came to be? What is dark matter/energy and how does it work? 95% of the matter-energy content is unknown! 5% is ordinary matter ("baryonic matter"), 25% "dark matter" and 70% "dark energy". How do we know it? It is all about statistics. Bayes' theorem. Comparing distributions. Comparing data and theory. We want to study dark matter: we cannot see it. We want to study dark energy: we don't even know what it is. So We must learn how to measure the useeable. Dark magic... A start is gravitational lensing. Light from far-away objects is distorted by galaxies in between. Or by the mass of dark matter. They're doing statistics with positions, shapes and distances on galaxies. Lots and lots of galaxies. Lots and lots of data. Data from the Euclid satellite, launched in 2023 with a Falcon 9 rocket. It contains the largest camera ever sent to space. It also has a …