We've used it on a few projects where I work. What I like:
- Auto-generated admins. You define your database models in code and Django makes crud screens for them. Saves a lot of time.
- Template system. I like the way inheritance and blocks work.
- ORM. I like defining database models in code and having Django make the tables for me. YMMV.
- Generic views. We hardly ever write view code. We use lots of generic views and then pass extra info to them to do things. Generic views let you give Django a database result set and then it will create a page for it, a list page, edit/update, single object detail page, etc. All you have to do is create a template.
- Documentation. It looks like there is a lot of it. But its all very basic and not that helpful once you get into Django. You'll get to delve into the code to figure some things out. The irc channel is helpful though.
- ORM. Depending on how you set your models up Django doesn't always genertate the best sql statements (I've had problems with it using left outer joins for fk relationships when it wasn't needed). Some things are undocumented.