Django
2025

Don't Let Search Take You Down
Twice in the last few months we’ve had to deal with Django production site issues caused by inefficient search queries.

DjangoCon US 2025: A Celebration of Community, Code and 20 Years of Django

Celebrating 20 years of Django
DjangoCon US 2025 was a milestone year for the community, as we gathered in Chicago to celebrate 20 years of Django. Attendees from around the world came together to learn about the latest developments, share their work, and strengthen the bonds that make DjangoCon such a special event. Caktus was well-represented once again, with our team contributing as organizers, speakers, and active participants throughout the week.

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:

Why Open Source Makes Sense For Your Business Web Projects
What Is Open Source?
Open source software is publicly available code that anyone can use, modify, and improve. It’s the foundation of much of the modern internet and it’s trusted by global enterprises, startups, nonprofits, and government agencies alike.

Happy 20th Birthday Django!
This Tuesday (tomorrow!), August 12th, we’re teaming up with TriPython to host an informal Django Birthday event at Boxyard RTP in Durham.

Avoiding Timezone Traps: Correctly Extracting Date/Time Subfields in Django with PostgreSQL
Working with timezones can sometimes lead to confusing results,
especially when combining Django's ORM, raw SQL for performance (like
in PostgreSQL materialized views), and specific timezone requirements. I
recently had an issue while aggregating traffic stop data by year, where
all yearly calculations needed to reflect the 'America/New_York'
(EST/EDT) timezone, even though our original data contained
timestamp with time zone
fields. We were using
django-pgviews-redux
to manage materialized views, and I mistakenly attempted to apply
timezone logic to a date
field that had no time or timezone
information.

How to Migrate your Python & Django Projects to uv
Editor’s note: This post was updated on July 17th, 2025, to use the
PATH_add
hook for direnv and to recommend including uv sync --locked
in your .envrc
file.

DjangoCon Europe 2025 Highlights
Three Cakti recently attended DjangoCon Europe 2025 in Dublin and it was a wonderful experience! It was great to see and chat with various Django community members we usually only see once or twice a year. Beyond that, we were most impressed by the consistently high quality of the talks throughout all three days of the conference. It was a pleasure to listen to so many excellent presentations, including the lightning talks at the end of each day. Here are some of our favorite talks.

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.

Tips for Tracking Django Model Changes with django-pghistory
Django and its admin interface are a big part of why Caktus uses Django, but the admin's ability to log database changes is limited. For example, it shows only changes made via the Django admin, not via other parts of the site.