Думаю, было несколько факторов, комбинация которых превышала сумму их индивидуальных весов.
Один из них - это просто время: Django появился как раз тогда, когда нарастала первая большая волна шумихи о Rails, и поэтому он был немедленно изображен как своего рода «ответ Python на Rails». Это привело к тому, что практически с самого начала проект вызвали немалое количество глазных яблок. Тот факт, что Адриан был на митапе "Snakes and Rubies" в Чикаго и должен был принять участие в параллельных обсуждениях Rails и Django, многое для этого сделал.
Другой фактор заключается в том, что Django является и всегда был установкой из одного пакета (ну, не совсем: вам все еще нужен адаптер базы данных, если вы не используете Python 2.5+ и SQLite, но достаточно близко). Альтернативы, не относящиеся к Zope, которые все сосредоточены на том, чтобы оставлять выбор компонентов в руках разработчика, потребовали немного больше работы, чтобы добраться до точки, где вы могли бы сделать базовое руководство: вам нужно было бы найти ORM, язык шаблонов и т. д. и т. д., и все они будут установлены и настроены. Хотя с годами ситуация стала намного лучше, я думаю, что давние воспоминания об этом все еще действуют.
И Django вышел из ворот с документацией, которая (если можно так сказать) была намного выше обычного стандарта для проектов с открытым исходным кодом и со временем только улучшилась. Учебное пособие, несмотря на все его многочисленные ошибки, затрагивает ряд важных моментов, которые делают Django полезным, а остальная часть документации всегда была хорошего качества, смешивая при необходимости как ссылки на API, так и важные "как" биты. Это дает хороший готовый опыт и помогает с кривой обучения после обучения (что всегда беспокоило Zope).
Я также думаю, что существует мнение - правильно или ошибочно - что, скажем, Pylons или Werkzeug действительно лучше подходят для опытных разработчиков, которые уже разбираются в WSGI и веб-экосистеме Python; тот факт, что они, как правило, являются сильным выбором для того, чтобы взять ваши существующие любимые библиотеки и соединить их вместе, является источником этого, я думаю, и, возможно, подталкивает некоторых новичков к интегрированному подходу Django. Обратной стороной, конечно же, является то, что многие люди, которым было бы лучше заранее узнать больше, прежде чем пробовать Django, этого не делают;)
Наконец, я думаю, что есть что сказать о том, как продавался Django, то есть он действительно долгое время не продавался, или, по крайней мере, не в том смысле, в котором, скажем, продавался Rails. До появления Django 1.0 «маркетинговые» усилия в основном состояли из ведения блогов (и были некоторые заметные инциденты, когда людей просили немного смягчить его), переговоров на PyCon, а затем в основном просто улучшения фреймворка, создания с его помощью интересных вещей. и пусть результаты говорят сами за себя. Теперь, конечно, в мире после 1.0 у нас есть DSF и DjangoCon и бизнес-ориентированные консультанты, которые проводят тренинги, много книг и всего остального, но это все еще в новинку.
Я ожидаю, что будет обратная реакция, как и в случае с Rails, и на самом деле я думаю, что это назревает уже некоторое время и уже началось. Но до сих пор я думаю, что перечисленные здесь факторы, по крайней мере, являются основными, стоящими за последовательным, неуклонным ростом популярности Django с момента его первого выпуска.