The core team has been willing to rip out and improve central infrastructure but never at the cost of unreasonable backward incompatibilities, and all changes are documented. Upgrading is never easy on large projects but it's been the easiest in Django. And the third-party packages pretty much fill every niche in a very modular way.
I see other devs complaining about their current frameworks' lack of documentation or testing and I feel like I'm in a parallel universe. I can never go back trivially to year-old JS code (and Rails isn't that much better) without some level of breakage or a new way of doing things.
Of course other technologies share a similar position on the matter, but they generally don't move as fast as Django does.