Book Review: Practical Django Projects

Published August 8, 2008

I recently bought Practical Django Projects. The book mainly goes through the development of three applications:

It shows how Django can ease the development by taking care of tedious and repetitive tasks and make it fun again. It also encourages and gives some great examples on how one can write flexible and reusable applications that can be used among various projects.

The first project is more of an introduction to Django and shows how to write a simple cms by making use of the bundled Flatpage application. The other two projects also go into more advanced things like writing custom Model Managers, Signals or Template Tags.

Newforms-Admin/Signals Refactoring

Since Practical Django Projects was published before the Newforms-admin branch was merged into trunk and Signals were refactored, there are a few outdated code examples in the book.

While there are a few pages about how to customize the admin interface, it doesn't focus on it and therefore isn't really a big problem. The few admin-specific code examples in the book can easily be translated by looking at the admin documentation and the NewformHOWTO wiki page.

As for Signals, I think that the important part is to understand how they fundamentally work and this book explains it very well. To use the examples in the book, there's the Signals page on Django's wiki which shows the specific API changes.

There's also the possibility of checking out the pre-newforms-admin tag from Django's Subversion repository which will give you a revision of Django before newforms-admin was merged, and the signal-refactoring took place. The code examples in the book should work without a problem by using this revision.

Conclusion

I recommend this book to everyone who knows a little Python and has heard of Django but hasn't really had the time or ideas to write some (reusable) applications with it. It lies a great foundation and shows the fundamental techniques to work with Django, so that it shouldn't be a problem to implement own ideas in the future.

Comments

Reply