Forms are a fragile waste of time 80% of the time.<p>Only reusable modelforms + generic views really redeem them in my eyes.<p>The ORM is enjoyable but terrible for doing mass migrations. I've had to do some pretty ridiculous backflips just to get migrations to finish on our VPS.<p>The utter lack of real migrations. For. Fuck's. Sake. Makes it impossible to make any rapid changes to your models without thinking, "OH GOD WHAT AM I GOING TO BREAK!?!"<p>There are random and strange install-specific errors that will crop up and we'll either have to reinstall python/django, the OS, or ignore it and trudge on.<p>And there won't be any mentions of said problems on the mailing list to speak of either. (These kinds of things have occurred on OS X and Win32 both, so don't start pointing fingers.)<p>The incredible awkwardness of AJAX in Django. Utterly useless. It apparently suited Jacob and Adrian to pretend javascript didn't exist in their world.<p>It's opaque, doesn't support multiple databases, doesn't support non-relational databases, and it's nearly impossible to modify/rip out any given portion of the framework. It's the epitome of what people hate about full'ish stack frameworks.<p>I'm to the point where I no longer feel Django is saving me any time. The crippling of templates doesn't create a substantial separation of duties at work because I work with incompetents. Instead I'm left with crippled templates and whiny coworkers.<p>I'd rather work with Werkzeug/Web.py/Sinatra/Rails at this point. At least Rails was designed to be modular, allowing me to rip the parts I don't like out.