Django provides a very clean layer on top of the database, and a great approach to structuring a system (apps, included urls.py, template dirs, templatetags, middleware). As with anything, though, the more complex the task, the more you need to be aware of what it is doing under the hood. Understanding when Django does lazy queries, where things are processed, etc. is very important.
The best thing in django IMOBO is the admin & the fact it makes you concentrate and work on the data first. On the other hand the template engine logic (at least the way some users uggest you use it) [0] is pretty ordinary and unrealistic (LJWorld is mostly read hence static templates). I still think I had a better time using tt2 (TemplateToolkit).
[0] http://www2.jeffcroft.com/blog/2007/aug/09/myth-content-and-...