Missed the survey but going to express my feelings here hoping that they will still be read. I like the opinionated, batteries included approach of Django a lot. My major gripe with it is that it only takes you so far. There's a ton of ever expanding documentation out there how to make your first app. Whether it's the official tutorial, another one or a workshop. But when looking to build something less trivial—not just bigger, but more complicated—I don't know where to look for in-depth guidance. Compared to Rails there really aren't too many books out there. I should give an honorable mention of Two Scoops of Django, but the style of many loose bits of good advice still doesn't help me with the bigger picture. Getting Started with Django made me hopeful, but somehow it never got past the first few episodes which again cover just the basics. Where to go after that? Just asking questions doesn't cut it. If the question is too broad, you're referred to the documentation, or the answer is too broad as well. And asking a specific, answerable question is hard when you're not comfortable with the technology yet. Either way, it takes too long to ask all the questions that arise and wait for the variety of answers that might follow, compared to reading a book with well-worked examples or so that form a coherent whole. I'm starting to feel that the only way to get fluent in Django would be to get a job in an experienced Django shop, which IMO should not be the case. On IRC in particular I sense an off-putting attitude that "we experienced Django developers know how to do it right" without really making that knowledge accessible to others. The documentation isn't by far as opinionated as the framework itself. As a result, I end up trying things that in the end can't be made to work well.
TLDR; I would like Django to be more accessible not just to beginners but especially to advanced starters.
> I'm starting to feel that the only way to get fluent in Django would be to get a job in an experienced Django shop, which IMO should not be the case.
Like learning any serious language/framework, it requires a relatively large-scale project to really understand all of the moving parts. Project Euler isn't going to cut it, but most web-application ideas you might have should expose you to quite a bit. To-do lists, workout logs, weather trend tracking, etc. would all be decent learner projects. Basically anything with somewhat normal data that multiple users can input & view.
It's obviously more complex than something like Flask, but it's definitely not as convoluted or unintuitive as Twisted. Django covers a lot of territory with the number of features it provides (ORM models, URL routing, request-handling views, templating, management commands, middleware, etc.), but each of those features is well-isolated and reasonably easy to grok if you focus on one at a time.
I've felt more or less the same as you and recently I've found Test-Driven Development with Python[0] to be a really nice resource. It is first and foremost a TDD book, which I certainly appreciate, but it takes you through creating an app in a (to my eyes at least) fairly rigorous way. It probably shouldn't serve as an introduction to Django but for someone who has a basic idea of how a project is put together but has never connected those dots, it might be really helpful.
TLDR; I would like Django to be more accessible not just to beginners but especially to advanced starters.