My work-in-progress book on Django
Pull request Compare This branch is 14 commits behind reinout:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


"Solid django" book project

You're looking at the source code for my (Reinout van Rees) Django book project. The actual book content is in the doc/source/ directory, the rest in here is build scripts and so.


Commons License
Solid Django by Reinout van Rees is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.
Based on a work at

Currently, I've licensed it under the creative commons attribution non-commercial no-derivs license.

This means it is open source, but pretty restricted. I want it to be my own book while I finish it. That's the nature of a good book: one person at the steering wheel. Once I've finished it I'll make it a less restrictive license, probably. I'll have to see how it plays out monetary-wise, to be honest. I want to earn some money with this book (to pay back my study debt) and I have to reconcile that with my desire to have a less restrictive open source license. I want to make sure that the book doesn't languish if I move on from Django (though I'm not planning to). Actually, I'll make the promise right here that I'll drop the non-commercial and no-derivatives conditions once I let this book languish. Someone else can take over then, if desired.

One excemption regarding no-derivatives: it is OK to fork the project on github to provide me with spelling corrections. I really don't know if that's the handiest way. But if it turns out to be handy: feel free. I won't treat you as a co-owner of the book contents, though :-)


I'm writing a book on Django. Preliminary goal: get a very basic version out by late december 2012, in time for Django 1.5.

After that, continue working on the book until the important parts are finished. After that, if enough people like the book, continue adding the not-core parts that I'd like to add.

Example source code

I asked a question on stackoverflow on how to use git to manage the example code and got some good tips. So here's the setup:

  • The example project's code is in a separate repository, like a regular project.
  • The book repository has a bunch of directories per chapter with versions of the example project in various stages of progression. These are extracted from tags in the code repository.
  • I can package up all those examples if I want as a zipfile. Not sure if I want to, though.

Internet centric

This book originally started as a book for a regular publisher, so intended for an epub/pdf version and a real printed dead tree one.

The deal fell through (=I was too slow). So I'm on my own now. So I'm slowly building the book and releasing it as it goes. And I'm doing an HTML version as that's OK with me and handier for lots of people. And it gives more google juice and exposure, which I'll need even more now that I don't have a publisher.

Treating the HTML version as the currently main one gives me the possibility to do some more internet-like tricks:

  • Links to github versions of the code.
  • Videos. Handy to make it really me that writes the book. HTML code is easy to copy, but a video is harder to re-make. And coupling videos with a book isn't something I've seen yet: I'm looking forward to trying it out.
  • Pointing at the official Django documentation! It is very good and there are lots of things I won't bother to write down, like a full list of field types: just look it up in the official documentation!

Later on I might do a proper PDF and epub version. I'm writing the book with Sphinx, so technically it is no problem.