I think Django's evolutionary decision making has been nothing short of fucking awesome. They've consistently waited until a clear, mature 3rd party winner has emerged for problems before integrating them. When those solutions are integrated, they're battle tested and not going to bite you into the ass.
Django's team is very aware of where their weaknesses are, and they're working on them:
We've been awarded $150,000 to help fund the development of Channels, the initiative to rewrite the core of Django to support (among other things) WebSockets and background tasks, and to integrate key parts of the Django REST Framework request/response code into Django, such as content negotiation. Together, these projects will help considerably improve Django's role of backing rich web experiences as well as native applications.
https://www.djangoproject.com/weblog/2015/dec/11/django-awar...
Rails opinionated approach lead to heavy churn in the 2 -> 3 -> 4 transitions. I don't want to deal with that.