Django
Articles about Django development, best practices, and the Django ecosystem.
Start thinking about running for the Django Steering Council
Every election cycle, qualified Django community members talk themselves out of running. This post is for you. I want to encourage you to run!
September 30, 2026
Share how you use Django with Django Probe
Django Probe is a low effort, high impact way to support the community. By sharing how you use Django, the community can make better decisions.
September 17, 2026
Custom Django Migration Operations with Index
You can hack Django's Index class to define custom migration operations on your model.
September 02, 2026
DjangoCon US 2026 recap
A recap of my fantastic DjangoCon US 2026 experience in Chicago. It's still my favorite conference and I will look forward to it every year.
August 31, 2026
Where to Find Third-Party Django Packages
The documentation now includes mentions of third-party packages and community maintained solutions, go check them out!
August 26, 2026
Counting on Multiple Columns with the Django ORM
The Count expression only works on a single column, but you can use Subquery to count on multiple columns!
August 19, 2026
Django Admin Form Injection
A hidden Django admin feature for passing values between windows.
August 12, 2026
What I'm looking forward to at DjangoCon US 2026
DjangoCon US is coming up, and I'm pretty dang excited for several reasons. I hope to see you there!
August 07, 2026
Exists() for Nested QuerySets in Django
There will come a time when your nested QuerySet performs poorly, when that happens, reach for Exists!
August 05, 2026
Speed Up Django Tests with setUpTestData
Speed up your tests by using the setUpTestData method.
July 29, 2026
PyOhio 2026 recap
A recap of my wonderful PyOhio 2026 experience. I absolutely loved the midwest vibes, the people and conference as a whole!
July 28, 2026
Django Form Templates
Form templates allow you to contain your form's customization to just the form, keeping your views nice and clean!
July 22, 2026
Model._meta.get_fields() in Django
Model._meta.get_fields() lets you walk your related models and build custom cascading deletes.
July 15, 2026
Django's resolve() Function
See how Django's resolve function can turn your existing logs into an analytics tool.
July 08, 2026
F() Expressions in Django
Learn how F expressions reference model fields in queries, useful for filters, ordering, and race conditions.
July 02, 2026
DEFNA's quiet impact on me and the community
An 'Emeritus' honor made me feel very fancy, and got me thinking about DEFNA's lasting impact on DjangoCon US and the Django community.
June 17, 2026
Are you curious about how to contribute to Django?
Want to contribute to Django but don't know where to start? I'm hosting weekly events on the Django Discord to help.
June 09, 2026
Using Read the Docs to benefit Django
Projects hosting documentation on Read the Docs can earn money through EthicalAds. And now, you can route that directly to the DSF!
May 24, 2026
Using Django Tasks in production
Have you been wondering if you should use Django Tasks for your next project? See how Djangonaut Space is using it today.
May 06, 2026
Who's helping you level up as a Django developer?
I officially started accepting clients for a Django mentoring business. If you, your colleagues, or company are wanting help in being a better Django developer or software engineer, please reach out.
April 21, 2026
Contributing to the Django community
Not sure how to get involved in the Django community? This guide covers everything from triaging tickets to organizing conferences, and even how to choose where to start.
April 06, 2026
django-security-label: A third-party package to anonymize data in your models
Django Security Label is a Django third-party package to help you define rules to dynamically anonymize/mask your data for PostgreSQL databases. It makes use of the PostgreSQL Anonymizer extension and supports creating any type of SECURITY LABEL.
March 18, 2026
Give Django your time and money, not your tokens
The Django community wants to collaborate with you, not a facade of you.
March 16, 2026
A Riskier JsonResponse
Ever wonder why you need to use safe=False to return arrays of JSON object in JsonResponse? Welp, it's because of ECMAScript 4 and you don't have to worry these days.
February 06, 2026
Preparing for conference sprints
Sprints are a valuable event at conferences, for you, the project, and the broader community. This post helps you prepare to get the most out of them.
January 14, 2026
Connecting with Django contributors on Mastodon
It's easier to contribute to open-source if you connect with people. This post dives into where to do that to connect with the Django community.
November 26, 2025
Updated tutorial: A Djangonaut's Debugging Toolkit
I've updated my debugging tutorial. It's a self-guided tutorial to learn about a Djangonaut's debugging toolkit.
November 03, 2025
Playwright & pytest techniques that bring me joy
Give it a read! Maybe these six techniques will bring you joy too. You can't go wrong with being able to write better tests, faster.
September 17, 2025
DjangoCon Africa 2025 recap
A recap of my fantastic DjangoCon Africa, UbuCon Africa 2025 experience. It was the first time I travelled to Africa, keynoted a conference and went on a safari.
August 25, 2025
Third-party packages in Django's documentation
A quick post on why we should include references to third-party packages in Django's documentation. Mainly, we've already solved curation and developers are doing to develop!
July 09, 2025
Django Commons a year later
Revisiting the state of Django Commons a year after I published a call for help.
May 21, 2025
Towards Better Mentorship: The Small Group Approach
A discussion about how small meetups could help us bridge the mentorship gap and how we can put them into practice today.
May 17, 2025
Talks I want to see at DjangoCon US 2025
A list of talks that I'm personally interested in seeing at DjangoCon US 2025.
April 02, 2025
Removing Model bases from migration state
When removing multi-table inheritance in Django, you need to remove your Model's bases from the migration's model state. This post goes into detail on when this comes up and how to resolve it.
March 19, 2025
Django 5.2 simple_block_tag with HTMX
Exploring some new hotness from Django 5.2 that makes HTMX integrations more robust.
January 29, 2025
Testing your Python package releases
I discovered that the release process for the Django Debug Toolbar wasn't as robust as I thought.
January 15, 2025
Complex Django filters with Subquery
An overview on how to do complex filtering in Django with Subquery.
January 01, 2025
Getting Started Contributing to Django
A collection of resources to help you get started contributing to Django.
December 25, 2024
Steering Council 6.x Thoughts
Inside are ideas on things the Steering Council I would like to attempt if elected next term.
November 20, 2024
DSF initiatives I'd like to see
Following Sarah Boyce's lead, here's my list of DSF initiatives I'd like to see for 2024.
October 13, 2024
On the importance of DjangoCons
A deeper dive into why DjangoCons are important to the Django community and how it could be more accurately reflected.
October 04, 2024
Putting Linux Mint on a 2012 MacBook Pro
A quick and fun review of my effort to install a new OS.
October 03, 2024
Revisiting Django Built to Last
A revisit on Community and Reliability within Django
September 26, 2024
Creating rows for django-tables2 with HTMX
An explanation of how to use django-tables2, HTMX, Alpine and Bootstrap to render a table with a form to create new rows.
August 17, 2024
Reducing downtime in Django with django-safemigrate
A thorough description of why downtime occurs during Django deployments and how to reduce it with django-safemigrate.
July 22, 2024
Django Commons - A home for community-maintained Django packages
A community run GitHub organization to support community-maintained third-party Django packages.
May 22, 2024
Djangonaut Space 2024 Session 1 Midway Review
My recap of my experiences during the first half of Djangonaut Space Session 1.
February 15, 2024
Informal Django Roadmap Ideas for 2024
My ideas for what Django could attempt in 2024 and beyond.
January 25, 2024
Redirecting With POST Requests
An explanation of how to replace 300 redirects with a POST requests.
January 22, 2024
The Fanout Pattern Explained
A brief overview of the fanout pattern that's commonly used in Celery.
December 06, 2023
Debugging CSRF Failed / 403 Forbidden errors in Django
A guided deep dive into Django's source code to understand why your application is failing CSRF validation.
November 04, 2023
RegisterFields in Django
An explanation of a Django model field that returns an instance of a class depending on a key.
October 03, 2023
Descriptive Django Admin Search
If you have people using the Django admin without knowing the code you can make their life easier by showing the fields that are actually being searched.
August 18, 2023
Professional Djangonaut skills
A brief description of various skills, experiences and technologies I feel that a professional Djangonaut has.
August 18, 2023
Django migrations and your database
This is my attempt to help clear up confusion about Django migrations and your database.
June 03, 2023
Send your people to DjangoCon
One Djangonaut's opinion on why companies should send their employees to DjangoCon.
April 21, 2023
Filtering rows every 5 days with the Django ORM
An explanation on how to filter data with a periodic date in Django.
April 05, 2023
Django Built to Last
A reflection on Django and our community in the context of the book 'Built to Last' by Jim Collins and Jerry I. Porras.
March 30, 2023
Plotting the trail for Django Cairn
An explanation of how I break down the work needed for a Django project.
February 28, 2023
Django Cairn - A collection of Django knowledge
An idea to create a place for Django developers find helpful knowledge.
January 26, 2023
Django Debugging Tutorial
An overview of the tools and methodologies used to debug Django applications.
November 18, 2022
How to have a great DjangoCon
A brief overview on a first time DjangoCon attendee's experience and recommendations.
October 23, 2022