I used webpy for my last site, but recently changed development to django. Django is really easy to learn, and provides a full stack of components that integrates really well together. I used AJS javascript library, but has changed to JQuery this time. Mostly because of JQuery's numerous plugins.
I'm using webpy for a few sites and it seems great to me. Are there many reasons for the switch? Or did you just want to try something new/better supported? I'm thinking of taking a look at django just because guido tells me to, but I don't see any strong reason to switch.
I had to drop the built-in DB library once I needed to connect to multiple databases. Global DB connections = bad. I suspect that if I'd kept using it, I would've had problems with transactions too.
I had to replace some of the request dispatching when I wanted to add code that triggers on every request (eg. logging, transactions, custom session management, "who's online?", traffic analytics).
I had to drop the Cheetah integration to add internationalization support - Cheetah supports the _ function, but only in precompiled templates.
I had to drop Cheetah entirely as the templates got a little more complicated and I wanted to factor some bits out. Web.py patches the Cheetah #include directive to do what you'd expect: include a file at compile-time (which is the same as runtime under web.py). With precompiled templates, however, it includes it at runtime, which means the included file can't have any #defs. Big pain.
It's not a bad framework to start out with, but you will end up needing to ditch nearly all of it by the time you've handled everything a typical webapp needs. If I were to do it over again, I'd probably start with Pylons. I'd consider Django, but I'm not sure you can swap out Django components the way you can with Pylons.