Programming is hard.
There's no way around it: Learning to make a computer do things means learning a new form of expression. It is not, in some ways, all that different from learning a spoken language.
But it's also fun in an addictive sort of way. It's like telling your Legos to build themselves. When things start to click, massive problems begin to break apart into a long series of eminently squashable bugs.
Before you start learning Django, a few things I recommend brushing up on:
(X)HTML: This is, after all, a framework for building web applications. You don't have to be a pro, but you should know how content is structured online and how it gets there. Recommendation: HTML Dog.
Understand relational databases: Again, no need to be an expert (my SQL skills still aren't what they should be), but you should understand what a relational database is and why it's important on the web. Two recommendations here: First, an introduction to databases. Then, start playing around with SQLite.
Install Wordpress: The modern web is built on applications, and blogging software is a good place to start. Buy some server space (or download MAMP) and take five minutes to learn how to create a MySQL database, drop in the code and get a blog up and running.
Learn to love the command line. Get used to browsing directories and moving, renaming and copying files without a visual interface. If you're on a Mac, put Terminal in your dock. If you're on Windows, consider buying a Mac, then see step one. If you're on Linux, I assume you've skipped this entire post because you already know Python.
Find and learn to use a good text editor. Start here. Pick something with syntax highlighting.
Things to think about
Embarrass yourself. Here's another parallel to learning to speak Chinese. You will make dumb mistakes. You will break things. You will spend days hunting for the one misplaced comma that turns your beautiful application into an ugly stack trace.
That's OK. It's the only way to learn. (And you can always delete it.)
Want to feel better about yourself? Read some of my early questions on the Django Users Group.
"The drive to not quit the first time they hit a wall, get confused, get frustrated, etc. If they're not willing to commit to work until they have a functioning app, then they shouldn't start."
Read the source code. How did people learn programming before open source? With almost any coding problem I come across, my first assumption is that someone has faced something similar before. Spend some time trolling Github and Google Code.
Blogs you should be reading
James Bennett is Django's release manager and something of an absolutist about documentation. Raid his archives for a host of practical tips and code recipes. I also recommend his [book].
Jeff Croft is one of the more prominent designers in the Django community. Read his old posts to get the hang of template inheritance and explainers for non-programmers.
There is a huge community out there. Check out the Django blog aggregator and see what jumps out at you.
Django people, what else should be on this list?