How to migrate your Poetry project to uv
So, like me you’ve decided to switch from Poetry to uv, and now you’re wondering how to actually migrate your pyproject.toml file? You’ve come to the right place!
Revisiting uv
Almost two months ago I compared Poetry with uv, and for me uv had some pretty significant drawbacks that kept me from switching over. The situation has changed quite a bit since then!
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?
Trying out PDM (and comparing it with Poetry and uv)
After comparing uv to Poetry, I am trying out PDM. On paper it combines all the best things of Poetry and uv, without their downsides. How does it hold up?
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?
Poetry versus uv
Comparing two Python package managers: Poetry and new kid on the block uv.
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...