Auto-updated timestamp fields in Django bulk querysets

February 26, 2020

In Django, fields with auto_now=True are not always updated correctly. A common practice to work around this is to override the save() method on the model, or to use a pre-save hook. However, this doesn't work when calling Model.objects.update() since save() is not called on all instances in the queryset.

Django Mulitprocessing with Progress Bar

December 10, 2018

Instead of rolling my own progress bars on new batch management commands, I've been using tqdm lately. Here's a quick snippet for multiprocessing a batch of items in a queryset. You'll need tqdm to run this: pip install tqdm Note: Since the function that I'm calling is using django's ORM, I close all db connections.

Django Queryset Annotations for Increased Performance

June 05, 2017

Django querysets are really powerful. They can often be used to reduce expensive object iterations down to the database level. Let's take the following models and figure out which product has the least in stock...

Mutiprocessing in Python Django Management Commands

May 19, 2017

A problem that many applications (hopefully) eventually run into is scalability. In a project I'm working on, we have a django management command that makes a time consuming API call to update a model. Let's take a look at the original code...

Using Template Variables to control Django Themes

February 13, 2017

A problem I recently ran into was allowing for multiple themes to be used on the same project. I decided to set a django setting called BRAND in order to control the theme through separate css files. For this example, we will assume that your static directory has sub-directories for each brand...

7 Ways to Speed Up Your Django Test Suite

August 13, 2016

As your Django app grows larger, your test suite starts piling up. In a project I was working on we had a test suite of 375 tests. Today I'll explain how I reduced the run time of that suite from 350+ seconds to 20 seconds. 1. Mock, mock, mock!

Recent Posts

Auto-updated timestamp fields in Django bulk querysetsDjango Mulitprocessing with Progress BarDjango Queryset Annotations for Increased PerformanceMutiprocessing in Python Django Management CommandsUsing Template Variables to control Django Themes