Book Review: The Definitive Guide to Django

I’m working on a new web-based project, and continuing the process of learning django, so I was very pleased to receive my copy of The Definitive Guide to django by Adrian Holovaty and Jacob Kaplan-Moss in the mail recently.


The book is divided into 3 sections. The first, including chapters 1-8, covers introductory material such as setting up a project, using the template system and database layer, etc. This was familiar material after several readings of the tutorials on the django web site, but it has been cleaned up and organized nicely in the book.

The second section (chapters 9-20) cover “subframeworks” and dig deeper into topics which, while documented online, I’ve found to be more difficult to “discover”. The chapters on generic views, syndication and site-map generation, and caching were particularly helpful. I also appreciated the advice on production deployment in chapter 20. Some of the mystery has been removed from these topics, and I learned about features I didn’t even realize existed.

The last section, consisting of 8 separate appendixes, is a reference manual for the various layers of django. All of the topics covered in the main part of the book are included with more concise descriptions of methods and more complete listings for functions or methods not discussed earlier.

My Review

I’m glad I bought the book. It presents much of the same material you can find online, but having it available in book form made it easier for me to read without being distracted by trying the material at the same time. I like to read, absorb, then try when I’m learning about a new technology, and I find it much easier to read and absorb away from the computer where there is no temptation to try writing code before I’m really ready.

The writing is easy to read, but not dumbed down. Between the holidays and the writing style of the book, I was able to blaze through the whole thing in about a week’s time (I admit to skimming parts of the reference section during that initial reading). There is a good mix of factual information and best practices tips with arguments backing up the opinions. You don’t have to agree with the suggestions, but you are more informed after reading them.

I’ve been using the appendixes as a handy reference while working on the templates and database queries for my project, and it has made development quite a bit easier. The online references for django are quite good, but flipping back and forth in the physical book is actually quicker in a lot of cases.