Today I’m launching the 3.2 update to my Django for Beginners book. I wanted to list all the new updates in one place for anyone who is curious. I first published this book in 2018 and have updated it for every edition since then: 1.11, 2.0, 2.1, 3.0, 3.1, and now 3.2. For every update I go through all the code from scratch with the latest version of Django and Python. Often I update descriptions of concepts I know readers are struggling with and usually add code that has been requested.

DFB 3.2

What’s New for 3.2

In bulleted format here is what’s new in the 3.2 update:

  • Django 3.2 and Python 3.10 throughout
  • Switched to Pip from Pipenv, which is a major change but feels warranted given Pipenv has slowed in development and Pip is the default for many people. I don’t get into fancier configuration options because “it all depends” once you do and using Pip is fine for a single developer starting out.
  • Windows-first support. I bought a Microsoft Surface laptop and have been dutifully using it several days a week. I still greatly prefer macOS but most of the world uses Windows so I have run through all the code and updated the text to ensure Windows works well.
  • Updated all the third-party packages to the latest versions, which means django-allauth, gunicorn, psycopg, whitenoise, crispy-forms.
  • Updated Bootstrap to 5.1.
  • Added a comments form section to the newspaper app, which has been highly requested. This was slightly tricky and I explain why in the book. The downside of generic class-based views is it can be hard to understand the full inheritance chain when you want to tweak them.
  • Added a section discussing function-based views and some examples.
  • Switched the default project name from config to django_project to avoid any confusion among readers.
  • Switch from pip install to python -m pip install because Adam Johnson said to.
  • All new screenshots since Chrome updates even more often than Django.
  • Switch to main from master for Git branch.
  • Added static files to an otherwise empty static/ folder that wasn’t being picked up by Git.

There is a separate lengthy post I could write about the book writing/editing/publishing process but I’m not sure how interesting that would be to everyone!

The Future

If you purchased the book via Gumroad you will receive an email and access to the update. Unfortunately I’m unable to contact or update readers who bought ebooks from other vendors or from Amazon.

Django 4.0 will be released in early December so I’ll need to go through this process again. It should be a shorter process though as Django is relatively mature and Python will still be on 3.10. I don’t envision anywhere near the same amount of updates to the text but can only say for sure once I’ve gone through all the code with the final 4.0 Django release.