WARNING: don't use subdomains if you want users in China to be able to get to your site. By default, most/all subdomains managed like this do not get put in China's DNS properly. Get used to life with the great firewall, it is what it is ;)
You can always do a country lookup from APNIC that will give you all of the IP's assigned to China (or any other country that regional registrar manages).
There is no published policy for how and why things get blocked. The behavior of the firewall changes over time.
The subdomains problem seems to do more with DNS replication and pessimistic acceptance of DNS records more so than a person actually censoring content.
Why should django deal with subdomains. Just use mod_rewrite or whatever your server offers to map your internal urls. myname.mydomain.com -> mydomain.com/myname/
It's much cleaner to have it taken care of in Django than through mod_rewrite. For one all of your URL routing will still work. In your setup using {% url %} or reverse() wouldn't work.
Yeah I agree here. Putting that inside of your application and outside your web server config makes more sense to me. Especially using the reverse url matching, which is so amazingly wonderful (especially when you give your url's unique names like user-account-settings and can simply do {% url user-account-settings %} and be done with it). Hat tip to obeattie.com for all my django template ramblings above ;)