I’ve started working on Python & Django sometime around March 2008 and from then on started following Django IRC and Django blogs of which b-list by James Bennett is most useful/helpful till date. Also I use django-registration django resuable app by James Bennett in all of my projects (even today) and hence I decided to order the book Practical Django Projects by James Bennett in July and I was expecting to learn something new which is not in my arsenal.
From March to July, I’ve read/worked a bit on Python and Django and even deployed couple of Django projects in production before I ordered the book but I was under the impression I’m voilating Python’s philosophy of “only one way to do it” ,mostly because I rarely used model managers which I found in almost all Django reusable apps I’ve used and that’s one major thing which I want to learn from this book.
Recieved Practical Django Projects book after couple of days and with all excitement I jumped straightaway into the book and after reading about 50-60 pages I was like this book is for real beginners (myself a beginner that time) beacuse I learned nothing new from what I knew already but I did not give up and continued to read. Done reading entire Blog application and I was partially happy that I learned a bit about Django Signals and how to use them to handle django comments moderation (which is on feature list for one of my projects ) but apart from Django Signals, most of them can be found in Django e-book by JKM and AH and the only difference is they are demonstrated as a part of project here.
Then jumped on to building social code sharing site example (like djangosnippets) and learned few things like modelsManager and using Custom SQL, it’s not that you can’t find them in docs or django e-book but here they are demonstrated using a realtime example.
Rest of the book focus on Writing Reusable apps, coding style, documentating the apps, coding for flexibility, packaging django apps which I think are favorite topics of author. You can find presentations on youtube on similar topics and one of them is here from Djangocon
Overall, Practical Django Projects is a good book but not a great and must have book. Practical Django Projects is a book for beginner but not the one you can start with, you still have to read Djangobook and documentation before you get on to this book. As it’s titled most of the Django features are demonstrated here using practical projects and James did an excellent job covering most of the features/functionality (like Models/Views/Forms/Admin/Comments/Signals/Sitemaps/Syndication/Templates/Urls). The real problem is once you read Djangobook and gone through documentation, most of the code in this book looks obvious and if you are comfortable with Django documentation which is excellent, then in my opinion you can ignore this book.
Note: This book was released before Django 1.0, so most of the code in the examples will not work (mostly contrib.admin refactored, contrib.comments refactored) and if you are looking to buy now, I would say wait for next version/update.
PS: I bought the companion Practical Django Projects ebook today (for 10USD) and went through it again just before posting this book.