Looking at Django task runners and queues

I use django-apscheduler to run a queue of scheduled tasks. Now I also need the ability to run one-off tasks and that turned out to not be so simple.

Why I still choose Django over Flask or FastAPI

I started using Django in 2009, and fifteen years later I am still a happy user. When I compare this to the number of JavaScript frameworks I’ve gone through during the same fifteen years, it’s clear that Django is rather special.

How to change MEDIA_URL for one FileField

I wanted to use a different MEDIA_URL for one of our FileField instances. It was very easy to do!

Django REST Framework versus Django Ninja

Let’s compare Django REST Framework with new kid on the block, Ninja.

Automatically deploy your site when you push the main branch

The best feature of Heroku is the ability to just push a branch, and it gets deployed. How do we replicate a workflow like that on our own server?

How I configure my Django projects

There are many ways to configure Django, like multiple settings files or .env files. Here’s how I do it.

Validate PayPal webhooks using Python

Paypal’s documentation only shows a JavaScript example. How do you validate the webhooks in Python though?

Changing the way Django 5.1 generates admin list labels

Django 5.1 adds related field lookup to the model admin’s list_display, but with an annoying quirk. Let’s fix that!

Extend Django’s autocomplete widget actions

Extending Django’s autocomplete widget with a new action which copies the linked user’s email address to the clipboard.

Deleting anonymous users' baskets when their sessions expire

How do you delete baskets belonging to anonymous users when their sessions expires? It wasn't quite as simple as I thought.

Adding custom actions to the Django Admin

Let's add custom actions to Django's admin site - but to the change form, not the list view.

Setting up a Debian 11 server for SvelteKit and Django

I recently had to set up a brand new server for a website running on SvelteKit and its API running on Django. I am a software developer and setting up servers and hosting isn't something I normally do, so I followed a bunch of different tutorials. In this article I want to combine all these tutorials, mostly for future me, but hopefully you'll find it useful as well.

Vapor 4 versus Django REST Framework

Over two years ago I wrote an article where I compared Vapor 3 to Django REST Framework. It's time for a rematch with Vapor 4.

Vapor 3 versus Django REST Framework

A little while ago I wrote about starting a new side project, where I was using Vapor 3 to build the backend. My initial impressions were extremely positive, but I ended up running into a few issues that made working with the framework a little bit...

Review roundup: the search for the perfect Python IDE (for Django)

When I first started working with Python in September 2009, I needed a good IDE. I quickly settled for Netbeans and I’ve been using it ever since, even though there are some things that really irritate me. But at least it works, and fits well in my...

Django-CMS backend usability

Yesterday I wrote an article comparing Django-CMS, FeinCMS and Mezzanine. One of the conclusions was that while Django-CMS is the best CMS on paper, I don’t like its backend interface that much. I thought it would be a good idea to properly explain...

Django-CMS vs. FeinCMS vs. Mezzanine

When you need a content management system for Django, there is enough choice. Maybe even too much: the very helpful site djangopackages.com lists 13. Some are mature and very feature-complete, while others are barely more than a basic model and a...

Looking for a Django CMS which suits my needs

I need to build a content-based website for a client, in Django. Well, that’s easy right? Pick one of the content management systems available, build some templates and css, and ta-da, done. Since I have used Django-CMS in previous projects, that...

Serving 5000 pages per second with Django

Okay, this website wasn’t slow and will never need to serve 5000 pages per second, but hey, it’s possible now! Oh right, and it was fun to play around with a nice caching system. Almost everything on mixedCase.nl needs to come from the database: the...

Django 1.2, a great release

I’ve been playing with the Beta release of Django 1.2 (get it here) and I love many of the new improvements. I’d like to list the best and biggest new features, and also some problems I encountered while using it. Smarter if tag I was already using...

Using Jinja2 templates in Django

In my previous post Things I “hate” about Python and Django, I said that one of the things I “hate” about Django is its template language. While very easy to use and pretty extensible, it’s missing some important (and basic, to be honest) features...

Things I “hate” about Python and Django

I have been a PHP programmer for the last 9 years, and only in September of 2009 I switched to Python and the Django framework. While I really love the Python language and the Django framework (especially compared to something like the Zend PHP...

Using the Google Visualization API in Django

In a project I am working on, I need to show a lot of graphs and charts. Together with the client we chose to use the Visualization API by Google, which provides a Python library, offers many different kinds of charts and very important: the data is...

How to dynamically add fields to a Django model

For a project I needed to create a Django model from a list of fields that were defined somewhere else. It took me hours to get this to work, so to save you the time, here is the solution: fields = ['field_a', 'field_b', 'field_c'] # the base model...